Я создал сценарий оболочки, содержащий ожидаемый сценарий для получения файла из удаленного местоположения. Все работает хорошо, пока какая-то команда не отправлена. Будь то «ls», «pwd» или любая другая команда, ожидаемый сценарий завершается внезапно. Не могли бы вы, парень, помочь мне с этим.
ПРИМЕЧАНИЕ. Безопасность не имеет значения, поэтому не используются ключи Publi c.
#!/bin/ksh
FTPREMOTEPATH=/Inbox
FTPREMOTEFILENAME=test.CSV
/usr/bin/expect -f - <<EOFEXPECT1
set timeout 60
spawn sftp -oPort=1002 username@test.server.com
expect {
default { exit 1}
-re "failed|invalid password|Permission denied" {exit 2}
"Connection closed" {exit 1}
timeout {exit 1}
}
expect "Password:"
send "password\r"
expect {
default {exit 1}
-re "password|Enter password for " {puts "Incorrect Password"; exit 2}
"sftp>" {send "cd $FTPREMOTEPATH \r"}
}
expect "sftp>"
send "pwd\r"
send "get $FTPREMOTEFILENAME \r";
EOFEXPECT1
В приведенном выше сценарии сценарии внезапно завершаются после отправки cd $ FTPREMOTEPATH.
Ниже вывод:
$ ./test.sh
spawn sftp -oPort=1002 username@test.server.com
Enter password for username
Password:
sftp> cd /Inbox
sftp> $