Адриан,
Я изменил скрипт, как показано ниже
[...]
send "rm $local_file\r"
expect sftp>
send "exit\r"
set waitval [wait -i $spawn_id]
exit [lindex $waitval 3]
Я протестировал сценарий файла, которого нет в нашей целевой системе, и ниже выводится его
sftp> get /pw/work/outbound/SendBills*.zip /pw/work/inbound/ar/
File "/pw/work/outbound/SendBills*.zip" not found.
sftp> rm /pw/work/outbound/SendBills*.zip
Removing /pw/work/outbound/SendBills*.zip
Couldn't delete file: No such file or directory
Итак, я ожидал, что сценарий spawn Ожидает возврата кода завершения, отличного от 0, в мой вызывающий сценарий .sh.
Возможно, я забыл упомянуть, что мой основной сценарий - .sh.В нем я вызываю сценарий ожидающего, который содержит приведенные выше команды.
Команда из моего сценария .sh:
if [ "$PSWD" = "Y" ]
then
$PS_APP_HOME/az/scripts/sh/azstmtsftp.exp $USER $PASS $HOST $REMOTE $LOCAL $PORT -- Here is where I am calling the expect script
else
--This was written in case the third pary goes for SSH keys in future
sftp $USER@$HOST <<EOF
get $LOCAL $REMOTE
rm $LOCAL
EOF
fi
RETCODE=$?
Я надеялся, что $ RETCODE будет иметькод завершения ошибки (из моего ожидаемого сценария), а не 0
Исходя из кода возврата, я надеялся спланировать свои дальнейшие действия.
С уважением, Аллен