Во-первых, снимите «делать сценарий оболочки» строки из «системных событий» блоков кода. Системные события не нужны для команды «make shell script».
Далее вы можете заставить applescript не дожидаться завершения команды оболочки, а также вернуть идентификатор PID (идентификатор процесса) команды в applescript. Например, запустите эту команду.
do shell script "/bin/sleep 5"
Вы увидите, что он является одним из основной 5 второй команды задержки и AppleScript будет ждать этих 5 секунд, прежде чем вернуть управление в сценарий.
Теперь запустите эту команду.
do shell script "/bin/sleep 5 > /dev/null 2>&1 & echo $!"
Вы увидите, что теперь AppleScript не ждать 5 секунд, и вы также получите PID команды под управлением сна. Обратите внимание на то, что мы добавили в конец исходной команды, чтобы это произошло.
Мы можем использовать этот PID. Мы можем сделать цикл повторения и проверить, работает ли PID с помощью команды «ps». Когда команда сна заканчивается, PID больше не будет существовать, и мы можем использовать это как триггер, чтобы узнать, когда команда сна завершена.
set thePID to do shell script "/bin/sleep 5 > /dev/null 2>&1 & echo $!"
repeat
do shell script "ps ax | grep " & thePID & " | grep -v grep | awk '{ print $1 }'"
if result is "" then exit repeat
delay 0.2
end repeat
return "the process is complete!"
Это должно дать вам инструменты для достижения вашей цели. Удачи.