Bash 스크립트에서 예상하시나요?

Bash 스크립트에서 예상하시나요?

expecta를 작성하고 명령을 사용하여 from을 트리거하는 대신 자동화하려는 a에서 명령을 직접 사용할 수 있는 방법이 있습니까 ?bash scriptexpect scriptspawnbash scriptexpect script

완전히 하나의 스크립트처럼요?

답변1

expect쉘 스크립트에서 시작할 수 있지만 expect하위 프로세스가 아닌 쉘에 대한 입력을 제어할 수는 없습니다 expect.

반면에 expect이를 쉘 자체에서 사용할 이유는 거의 없습니다. 원하는 작업은 무엇이든 expect쉘에서 직접 수행할 수 있습니다. expect쉘 자체에서는 사용하지 않고 쉘에서 실행되는 명령에서는 사용하고 싶을 가능성이 높습니다 . 따라서 expect쉘에서 호출하고 expect제어하려는 프로그램을 호출 할 수 있습니다 expect.

답변2

대화형 스크립트가 필요하지 않은 경우 read var로 변경하세요 var="fixed value".

또는 스크립트의 표준 입력에 값을 전달하여 입력을 자동화할 수 있습니다.

./myscript.sh <<END_OF_INPUTS
input string 1
input string 2
... and so on
END_OF_INPUTS

또는 다음 값을 스크립트 자체에 넣을 수 있습니다.

$ cat test.sh
#!/bin/sh
read -p "this one is interactive: " first

exec 0<<END_INPUT
foo
bar
END_INPUT
read -p "2nd input is automated: " second
read -p "3nd input is automated: " third

echo "1st input: $first"
echo "2nd input: $second"
echo "3rd input: $third"
echo done


$ sh test.sh
this one is interactive: I type this
1st input: I type this
2nd input: foo
3rd input: bar
done

Expect는 매우 유용한 도구이지만 실제로 필요한 곳은 많지 않습니다.

관련 정보