expect
a를 작성하고 명령을 사용하여 from을 트리거하는 대신 자동화하려는 a에서 명령을 직접 사용할 수 있는 방법이 있습니까 ?bash script
expect script
spawn
bash script
expect 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는 매우 유용한 도구이지만 실제로 필요한 곳은 많지 않습니다.