스폰 명령을 사용하여 원격 서버에 연결하고 일부 명령/스크립트를 실행하려고 합니다.
스크립트는 다음과 같습니다.
#!/usr/bin/expect
for i in `srvctl status database -d PROD | awk -F " " '{print $(NF)}'`
do
echo "value of i is $i"
spawn ssh "$i"
echo "vijay"
done
이것이 출력이다
bash-3.2$ sh a.sh
value of i is prod1
a.sh: line 8: spawn: command not found
vijay
value of i is prod2
a.sh: line 8: spawn: command not found
vijay
RHEL 5.11을 사용하고 있습니다.
bash-3.2$ expect -v
expect version 5.43.0
미리 감사드립니다.
답변1
다음과 같이 스크립트를 셸에 대한 인수로 실행하면 다음과 같습니다.
sh a.sh
shebang은 무시되고 스크립트가 a.sh
해석됩니다 sh
. spawn
시스템에 해당 명령( spawn
특정 명령)이 없으므로 expect
쉘에서 해당 오류가 발생합니다.
귀하의 Shebang이 이라는 점을 감안할 때 스크립트에 비특정 명령이 #!/usr/bin/expect
많기 때문에 무엇을 하려는지 명확하지 않습니다 .spawn
expect