Скрипт продолжается до того, как завершить загрузку с помощью sftp в bin / ожидаемом - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть скрипт, который загружает файл с моего сервера sh. Он работает нормально и начинает загружаться нормально, но он уходит от загрузки до ее завершения. Есть ли способ подождать, пока загрузка не будет завершена? Я пытался подождать, и он просто делает паузу.

#!/usr/bin/expect

spawn sftp root@ip
expect "password"
send "<password>\r"

expect "sftp>"
send "lcd Desktop\r"
expect "sftp>"
send "cd Desktop\r"
expect "sftp>"
send "get -r File\r"
wait
close
wait

1 Ответ

0 голосов
/ 10 апреля 2020

expect будет использовать настройку $timeout, чтобы отказаться от ожидания, и продолжит работу со сценарием. Чтобы ждать вечно, пока шаблон не совпадет, выполните

set timeout -1

Итак

expect "sftp>"
send "get -r File\r"
set timeout -1
expect "sftp>"
send "exit\r"     ;# exit gracefully
expect eof
...