openはデフォルトでLaunchServicesが判定したアプリケーションでファイルを開くが、-aまたは-bで開くアプリケーションを明示的に指定できる。
-aでアプリケーション名を指定する
-a <application>で、アプリケーション名を指定してファイルを開く。
$ open -a "Preview" a.txt
デフォルトではTextEditで開かれる.txtファイルを、Previewで開ける。アプリケーション名の代わりに、.appへのフルパスを指定できる。
$ open -a /Applications/Preview.app a.txt
存在しないアプリケーション名を指定するとエラーになる。
$ open -a "NoSuchApp" a.txt
Unable to find application named 'NoSuchApp'
-bでバンドル識別子を指定する
-b <bundle_identifier>で、アプリケーション名の代わりにバンドル識別子を指定できる。
$ open -b com.apple.TextEdit a.txt
アプリケーション名は日本語化されていたりバージョンによって表記が変わったりする場合があるが、バンドル識別子は変わらないため、スクリプトから確実にアプリケーションを指定したい場合に向いている。バンドル識別子はosascript -e 'id of app "アプリ名"'で確認できる。
$ osascript -e 'id of app "TextEdit"'
com.apple.TextEdit
参考
open command - Open a file, folder or URL\第一線のプログラマーの行動原理を学べる!/
