OSX: 「open」を使用して起動したアプリのセグメント違反に対処する

OSX: 「open」を使用して起動したアプリのセグメント違反に対処する

以下を使用してスクリプトからアプリを起動しています:

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 環境変数の適切なアプリケーションとして機能できるようになります。

これがあなたの問題かもしれません。

関連情報