Meu objetivo é renomear um arquivo em um servidor sftp usando esperar, E se a renomeação falhar, sair esperando retornar um código de status de 1
Meu script de espera funciona bem - ele renomeia com sucesso.
Não consigo descobrir como sair com um código de status se a renomeação falhar.
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
Aqui está a saída quando executo meu script:
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:~$>
Alguém pode sugerir o que posso fazer para sair com o código de retorno zero se a renomeação falhar?
Pergunta bônus... qual é a maneira correta de sair no final do meu script esperado? É um desses?
exit
close
expect eof
obrigado!