
以下を使用してスクリプトからアプリを起動しています:
open /path/to/foo.app -F -g -W --args -foo bar
アプリケーションがクラッシュすると(特にセグメントフォルト)、ウィンドウは開いたままになり、アプリケーションは終了しません。しかし、昔ながらの方法でアプリケーションを起動すると
/path/to/foo.app/Contents/MacOSX/foo -foo bar
単に終了して、スクリプトにゼロ以外のエラー コードを返します。これが私の目的です。上記の「open」構文を使用して、この動作 (セグメント エラーで終了し、エラー コードを返す) を実現するにはどうすればよいでしょうか。目的は、-F、-g、-W などの OSX 固有のオプションにアクセスできるようにすることです。
答え1
-Wオプションの使用は避けた方が良いでしょう。open のマニュアルページ:
-W は、開いているアプリケーション(またはすでに開いているアプリケーション)が終了するまで open を待機させます。-n フラグと一緒に使用すると、open は $EDITOR 環境変数の適切なアプリケーションとして機能できるようになります。
これがあなたの問題かもしれません。