TCLスクリプト - scpが完了すると予想される

TCLスクリプト - scpが完了すると予想される

現在、.tar.gzをリモートサーバーに送信するtclスクリプトがあります。

spawn scp -r "file_to_send.tar.gz" $user@$host:/
set timeout 10

spawn ssh $user@$host
expect "password: "
send -- "$passwd\r"

send -- "tar -zxvf /file_to_send.tar.gz\r"
sleep 1

しかし、scpが完全に完了していないため、抽出が機能しないようです。 scpが完了したら、プログラムで確認する方法はありますか?

答え1

次のコマンドを使用して、最初のビルドが完了するのを待つことができます。

expect eof

あるいは、必要に応じて戻りコードをキャプチャしてテストすることもできます。

catch wait result
if [lindex $result 3] { send_user "fail\n";  exit 1 }
send_user "ok\n"

関連情報