TCL 脚本 - 预计 scp 完成时

TCL 脚本 - 预计 scp 完成时

我目前有一个 tcl 脚本,它将 .tar.gz 发送到远程服务器。

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"

相关内容