質問: composerをインストールする例として以下のようなものを拝見しました。 パイプ後ろにある php -- の最初の'--'の部分の意味がわかりません。 お分かりの方ぜひご回答ください。よろしくお願いします。 ネットである程度調べましたが、納得できず質問している状態です。 ``` curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer ```
回答: によると > > Arguments passed to script. > > Use -- args when first argument starts with - or script is read from stdin > > > とあります。読めば納得なはずですが、どう納得できないでしょうか? 例示例では `php` スクリプトが `php` の標準入力から与えられています( `curl` の標準出力からパイプで受け取っています)つまりまさにマニュアルにある状況です。このとき - コマンドラインで起動する `php` 実行ファイル自体へのオプションでなく - `php` を使って実行するスクリプトへのオプションとして `--install-dir=/usr/bin` と `--filename=composer` を渡すには `php` 実行ファイルに対して「以後を自分のコマンドラインオプションとして読むな」という意味で `--` を先行させます。 このダブルダッシュ `--` は他のツールでも「以後を自分のコマンドラインオプションとして読むな」の意味で良く使われます。リンク先おまけ2 1文字ハイフンが特別な意味を持つシェルコマンドの例を教えて下さい シェルスクリプトを書く際に使うツールが `--` に対応していると「ここでファイル名が `-a` とかありうるよな・・」って場合に考えることが減ってとても楽できます。常に `rm -f -- *` とか書いておけば良いわけで。