UbuntuからShellでexepectコマンドを使って自動でSSHログイン、返答があった文字列によって条件分岐を行いたいのですが、条件分岐できません。何が問題か教えていただけないでしょうか?
Shellのexepectコマンドを使って以下の流れで自動の応答のスクリプトを書きたいです。
(1)サーバーにSSHでログインする
spawn "ssh root@192.168.XXX.X"
expect "password:"
send "${パスワード用変数}\n"
(2)expectの返答によってexitに渡す数値を変更する
expect
{
"条件分1" {exit 1}
"条件分2" {exit 2}
}
。
上記流れの(2)で条件文によって、exitに渡す数値を変えたいのですが、0を返してきます。
条件分岐できないのは何が問題なんでしょうか?
該当のソースコード
PW="Password"
expect -c "
set timeout 5
spawn "ssh root@192.168.XXX.X"
expect "password:"
send "${PW}\n"
expect
{
"条件分1" {exit 1}
"条件分2" {exit 2}
}
expect "$"
exit 0
"
使用しているOSやバージョン情報
OSはUbuntu(20.04)です。
expectはインストールしました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/28 02:18
2021/03/28 03:48
2021/03/28 05:08
2021/03/28 07:28
2021/03/28 13:29
2021/03/29 23:22
2021/03/30 18:20 編集