Вот что делают циклы Bash while :
while /path/to/application.app
do
:
done
Он запустит приложение и, если оно успешно завершится, запустит тело цикла. :является командой оболочки no-op (цикл должен иметь тело, вот что мы туда поместили); после этого он возвращается наверх и снова запускает программу. Если это не удается, цикл останавливается и скрипт завершается.
Однако, похоже, что то, что вы запускаете, может быть обычным приложением Mac ( .app): в этом случае возникает пара проблем. Во- первых, вам нужно использовать openкоманду , а не работает каталог приложений непосредственно: open /path/to/application.app.
Другое - то, что когда вы это делаете open, обычно сразу завершается успешно, независимо от того, что приложение продолжает делать: это не совсем универсально, но большинство так и будет. Если один делает, вы можете использовать -Wопцию , чтобы заставить openне блокировать до конца приложения: open -W /path/to/application.app. Обратите внимание, что если приложение уже запущено, оно будет ждать, пока существующее выполнение также не прекратится.
Насколько серьезна проблема, зависит от того, какое приложение вы используете. Если это не очень хорошо, делать это из оболочки, возможно, не лучший вариант. В этом случае вам, вероятно, лучше использовать AppleScript, о котором вы можете спросить в Ask Different .