빌드 명령을 찾을 수 없습니다

빌드 명령을 찾을 수 없습니다

스폰 명령을 사용하여 원격 서버에 연결하고 일부 명령/스크립트를 실행하려고 합니다.

스크립트는 다음과 같습니다.

#!/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많기 때문에 무엇을 하려는지 명확하지 않습니다 .spawnexpect

관련 정보