Mac OSでコマンドライン引数でアプリケーションを実行する方法
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のアイコンが開いたままにならないようにする方法はありますか?
Edit
Mozilla Wikiページ によると、スクリプトを使って引数でアプリケーションを実行するのがベストだそうです。スクリプトの最後に &
を追加すると、永続的なターミナルウィンドウが消滅します。今の唯一の厄介な点は、死んでログアウトしたターミナルウィンドウを開くことです (永続的なターミナルウィンドウよりはマシですが、それでも…)
#!/bin/sh
/Applications/Firefox.app/Contents/MacOS/firefox -P default -no-remote &