--argsは、それ以降のすべての引数をopen自身では解釈せず、起動するアプリケーションのargvにそのまま渡すオプションである。
–argsで引数を渡す
$ open -a TextEdit --args --customFlag hello-arg
--args以降の--customFlag hello-argは、openのオプションとしてではなく、TextEditプロセスのargvとしてそのまま渡される。実際に起動したプロセスをpsで確認すると、渡した引数がそのまま含まれている。
$ ps -ww -p <PID> -o command=
/System/Applications/TextEdit.app/Contents/MacOS/TextEdit --customFlag hello-arg
注意点
--args以降に書いた文字列は、ファイルパスとして開かれることはなく、openコマンド自身のオプション(-aなど)としても解釈されない。すべて起動するアプリケーションの起動時引数として渡される。渡した引数をアプリケーションがどう扱うかは、そのアプリケーションの実装次第である。コマンドライン引数を解釈しないアプリケーションに渡しても、単に無視される。
参考
open command - Open a file, folder or URL\第一線のプログラマーの行動原理を学べる!/
