Isso é o que loop while do Bash:
while /path/to/application.app
do
:
done
Ele executará o aplicativo e, se ele terminar com êxito, executará o corpo do loop. :
é o comando não-operacional do shell (o ciclo tem que ter um corpo , então é isso que colocamos lá); depois disso, volta ao topo e executa o programa novamente. Se falhar, o loop pára de ser executado e o script sai.
No entanto, parece que o que você está executando pode ser um aplicativo Mac comum ( .app
): há alguns problemas que surgem nesse caso. Uma é que você precisa usar o open
command , em vez de executar o diretório do aplicativo diretamente: open /path/to/application.app
.
O outro é que quando você executa open
normalmente termina imediatamente com sucesso, independentemente do que o aplicativo faça: isso não é absolutamente universal, mas a maioria o fará. Se o seu, você pode usar a opção -W
para forçar o open
a bloquear até que o aplicativo termine: open -W /path/to/application.app
. Observe que, se o aplicativo já estiver em execução, ele aguardará até que a execução existente também termine.
Quanto de um problema disso depende do tipo de aplicativo que você está executando. Se não funcionar bem, fazer isso a partir do shell pode não ser a melhor opção. Nesse caso, você provavelmente está melhor com o AppleScript, sobre o qual você pode perguntar sobre Pergunte diferente .