スポーンコマンドを使用してリモートサーバーに接続し、いくつかのコマンド/スクリプトを実行しようとしています。
スクリプトは次のとおりです。
#!/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