Inilah yang dilakukan Bash saat loop :
while /path/to/application.app
do
:
done
Ini akan menjalankan aplikasi, dan jika itu berakhir dengan sukses menjalankan tubuh loop. :
adalah perintah no-op shell (loop harus memiliki body, jadi itulah yang kita letakkan di sana); setelah itu kembali ke atas dan menjalankan program lagi. Jika gagal, loop berhenti berjalan dan skrip keluar.
Namun, sepertinya yang Anda jalankan mungkin aplikasi Mac biasa ( .app
): ada beberapa masalah yang muncul dalam kasus itu. Salah satunya adalah bahwa Anda perlu menggunakan open
perintah , daripada menjalankan direktori aplikasi langsung: open /path/to/application.app
.
Yang lain adalah bahwa ketika Anda melakukannya open
biasanya akan segera berakhir dengan sukses, terlepas dari apa yang harus dilakukan aplikasi: itu tidak sepenuhnya universal, tetapi sebagian besar akan. Jika salah satu Anda tidak, Anda dapat menggunakan -W
opsi untuk memaksa open
untuk memblokir sampai ujung aplikasi: open -W /path/to/application.app
. Perhatikan bahwa jika aplikasi sudah berjalan, ini akan menunggu sampai eksekusi yang ada juga berakhir.
Berapa banyak masalah yang tergantung pada aplikasi apa yang Anda jalankan. Jika itu tidak berfungsi dengan baik, melakukan ini dari shell mungkin bukan pilihan terbaik. Dalam hal ini Anda mungkin lebih baik menggunakan AppleScript, yang dapat Anda tanyakan di Ask Different .