Você precisa verificar uma falha na renomeação, combinando esse texto e agindo nele. Isso pode ser abstraído em um proc
(o que o TCL chama de sub-rotina ou função).
spawn ...
set ret 0
expect "sftp>"
proc sftp_rename {from to} {
global ret
send "rename $from $to\n"
expect {
-ex "Couldn't" { set ret 42; exp_continue }
"sftp>"
}
}
sftp_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
send "bye\n"
expect eof
exit $ret
Eu usaria expect eof
, pois esperaria que a conexão sftp
fosse embora naquele momento.