하나의 명령 만 실행하는 쉘 스크립트를 작성하려고한다고 가정 해 봅시다. 그러나이 명령은 제대로 설계되지 않았습니다. 명령 행 옵션을 제공하지 않습니다. 대신 몇 가지 질문을하고 사용자 입력을 기다립니다.
스크립트에서이 입력을 준비 할 수있는 방법이 있습니까? 질문에 자동으로 답변됩니까?
답변
명령이 까다 롭지 않으면 다음과 같이 작동해야합니다.
command > /dev/null << EOF
<answer 1>
<answer 2>
<answer 3>
EOF
이를 위해서는 정확한 답변을 미리 알고 있어야합니다.
답변
기대할 수 있습니다. Expect 웹 사이트에서 :
Expect는 telnet, ftp, passwd, fsck, rlogin, tip 등과 같은 대화식 응용 프로그램을 자동화하기위한 도구입니다. Expect는 실제로이 작업을 간단하게 만듭니다. 예상은 또한 동일한 응용 프로그램을 테스트하는 데 유용합니다 …]
autoexpect 와 같은 많은 도움이 제공됩니다 .
다시 Expect 웹 사이트에서
autoexpect는 다른 프로그램과의 상호 작용을 관찰하고 상호 작용을 재현하는 Expect 스크립트를 만듭니다. 직선 스크립트의 경우 자동 기대 기능은 스크립트를 직접 작성하는 것보다 시간이 많이 절약됩니다.
답변
스크립트가 하나의 프롬프트 응답을 요구하거나 동일한 응답을 제공 할 수있는 여러 프롬프트가 표시되는 경우 다음이 있습니다 yes
.
NAME
yes - output a string repeatedly until killed
SYNOPSIS
yes [STRING]...
yes OPTION
DESCRIPTION
Repeatedly output a line with all specified STRING(s), or `y'.
다음과 같이 사용하십시오.
yes Me | give_a_hug.sh