我的目标是使用期望重命名 sftp 服务器上的文件,如果重命名失败,退出期望返回状态代码 1
我的期望脚本工作正常 - 它成功重命名。
如果重命名失败,我无法弄清楚如何使用状态码退出。
ubuntu@ip-10-0-0-138:~$> cat expect_script.txt
spawn sftp -o "StrictHostKeyChecking no" [email protected]
expect "password:"
send "somesupersecretpassword\n"
expect "sftp>"
send "rename /var/www/static/tmp-93121715.mp4 /var/www/static/91329728.mp4\n"
expect "sftp>"
send "rename /var/www/static/91329728.mp4 /var/www/static/tmp-93121715.mp4\n"
expect "sftp>"
send "bye\n"
expect "#"
exit
这是我运行脚本时的输出:
ubuntu@ip-10-0-0-138:~$> expect -f expect_script.txt
spawn sftp -o StrictHostKeyChecking no [email protected]
[email protected]'s password:
Connected to nginx.localvpc.
sftp> rename /var/www/static/tmp-93121715.mp4 /var/www/static/91329728.mp4
rename /var/www/static/tmp-93121715.mp4 /var/www/static/91329728.mp4
sftp> rename /var/www/static/91329728.mp4 /var/www/static/tmp-93121715.mp4
rename /var/www/static/91329728.mp4 /var/www/static/tmp-93121715.mp4
sftp> bye
bye
ubuntu@ip-10-0-0-138:~$>
如果重命名失败,任何人都可以建议我可以做什么以返回代码零退出?
额外的问题......在我的期望脚本结束时退出的正确方法是什么?是其中之一吗?
exit
close
expect eof
谢谢!