Я создал скрипт, в котором есть блок запуска кода терминала для извлечения изображения с сервера по FTP.
Когда я запускаю скрипт в редакторе скриптов, все в порядке: запуск скриптаТерминал, откройте сеанс FTP, установите путь назначения, получите файлы, удалите их с сервера, закройте соединение, дождитесь окончания активности Терминала и выйдите из него.
Но когда я запускаю свой скрипт как приложениепримерно в 90% случаев приложение запускает терминал, а затем терминал сразу же закрывается.Когда Терминал, кажется, правильно «получает» команды FTP, соединение выполняется, получение файла и так далее.В совершенстве.Но это происходит только в нескольких случаях.
Вот последний код, который у меня есть для этой части:
tell application "Terminal"
activate
-- Wait for "no more activity"
set frontWindow to window 1
repeat until busy of frontWindow is false
delay 1
end repeat
-- Perform FTP actins
set shell to do script "ftp -i ftp://user_ftp:pass_ftp@host_ftp/" in window 1
do script "lcd ~/Desktop/tmp_instagram/" in shell
do script "mget *.jpg" in shell
do script "mdel *.jpg" in shell
do script "bye" in shell
-- Wait for no more activity
set frontWindow to window 1
repeat until busy of frontWindow is false
delay 1
end repeat
end tell
tell application "Terminal" to quit saving no -- Saving no to avoid conf alert
Чтобы избежать потери времени, вот некоторые из тестов, которые я провел, но безуспешно:
- Установка всей команды FTP в одну строку так.
- Установите задержку 5 после активации, а не повторение при занятом
- Установите задержку после команды ftp
Фактически, Терминал, кажется, закрывается до получения команды FTP (немедленно открывается и закрывается).