Mac OS X でターミナルアプリケーションを使っているときに,しばしば使うのが /usr/bin/open コマンドです.Windows の Cygwin でいえば,cygstart コマンドに似ています.
open my_paper.pdf
my_paper.pdf をデフォルトの PDF 表示ソフトで開く.
東工大のウェブページをデフォルトのウェブブラウザで開く
という風に,結構,便利なんです.
何年も使ってきた open コマンドなんですが –args オプションがあることに今日に今日まで気づいていませんでした.
これは「以後の引数を main 関数の argv に渡す」という意味だそうです.-a オプションを組み合わせると便利です.たとえば,以下のようにすれば,既に Chrome が起動している状態で別の Chrome アプリケーションを起動することができます.
open -n -a "Google Chrome" --args --user-data-dir="$HOME/Library/Application Support/Chrome_Profile_2"
今まではどうやっていたかというと,以下のような感じでした.
"Applications/Google/Google Chrome.app/Contents/MacOS/Google Chrome" --user-data-dir="$HOME/Library/Application Support/Chrome_Profile_2"
Contents/Info.plist の内容を無視するので,エラーが出たり誤動作もあったりで今ひとつだったんです.小さな悩みから一つ解放されました.
ところで,学生のY君が -a オプションは便利だけど,どこにインストールしたアプリケーションが起動するのか分らないから不安だと言ってました.確かに...どうすればいいんだろう?