現在、.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"