Macのアプリケーションにコマンドライン引数を追加する簡単な方法はありますか?たとえば、Operaをキオスクモードで実行したり、Firefoxで別のプロファイルを使用したりするには、次のように入力します。
$ /Applications/Opera.app/Contents/MacOS/Opera -kioskmode
$ /Applications/Firefox.app/Contents/MacOS/firefox -P profilename -no-remote
Windowsでは、ショートカットプロパティに引数を追加できますが、Macはそれ自体ショートカットを使用せず、アプリケーションを直接実行するため、これは不可能です。
bashまたはApplescriptを使用してアプリケーションを起動すると、部分的に機能することがわかりました。
# Bash
#!/bin/sh
/Applications/Firefox.app/Contents/MacOS/firefox -P default -no-remote
# Applescript
do shell script "exec /Applications/Opera.app/Contents/MacOS/Opera -kioskmode"
これらの実行可能ファイルを作成してアイコンを割り当てると、これらの擬似プログラムのいずれかを実行すると、アプリケーションが開いている限りターミナルウィンドウまたはApplescriptアイコンが開いたままになることを除いて、すべてがうまく機能します。おそらく、Applescriptコマンドを使用するopen
とこれを回避できますが、パッケージ化された(ちょうど/Applications/Firefox
)アプリケーションを実行していないため、機能しません。
だから、コマンドライン引数でアプリケーションを実行するより良い方法はありますか?そうでない場合、アプリケーションが開いている間、永続的なターミナルセッションまたはApplescriptアイコンが開いたままになるのを防ぐ方法はありますか?
編集
Mozilla Wikiページによると、引数を使用してアプリケーションを実行するにはスクリプトを使用するのが最善です。&
スクリプトの最後にa を追加すると、永続的なターミナルウィンドウが強制終了されます。唯一の厄介な点は、それが死んでログアウトしたターミナルウィンドウを開くことです(これは永続的なウィンドウよりも優れていますが、それでも...)
#!/bin/sh
/Applications/Firefox.app/Contents/MacOS/firefox -P default -no-remote &
&
まだターミナルに属している状態でジョブを実行する場合、実行disown %/Applications/Firefox.app/Contents/MacOS/firefox
後に行を追加することで修正でき、AppleScriptを使用してターミナルを安全に閉じることができます。