「-」(ダブルダッシュ)とはどういう意味ですか?(「ダブルダッシュ」とも呼ばれます)


回答:


583

より正確に--は、bash組み込みコマンドおよび他の多くのコマンドで二重ダッシュ()を使用して、コマンドオプションの終わりを示し、その後は位置パラメーターのみが受け入れられます。

使用例:文字列のファイルをgrepしたい場合-v-通常-v、一致する意味を逆にするオプションと見なされます(一致しない行のみを表示し--ます)が、次の-vような文字列をgrepできます:

grep -- -v file

3
最も顕著なのは、set絶対に必要なBash ビルトインです。
l0b0

10
--で正規表現からオプションを分離するように機能しますgrepが、標準的な方法は-e/ を使用すること--regexpです。
l0b0

5
@ l0b0:通常、検索するパターンは位置パラメータの1つであるため--、の後に収まる可能性がありますが、上記の例grep -e -v fileは(非常に紛らわしいですが)と書くこともできます。
グス

2
すべてのbash組み込みコマンド--がオプションマーカーの終わりとして受け入れられるわけではありません。[そしてecho、例えばしないでください(理由の1つはecho確実に使用できません)。
ステファンシャゼラス

44

これは、パラメーター(オプション)リストの終わりを示します。


39

ではman bash私たちが読むことができるシェルの組み込みコマンドセクション:

特に断りのない限り、このセクションで説明されている各組み込みコマンドは、オプションの終わりを示す- accepts -- 先行するオプションを受け入れるものとして記載されています

:truefalse、およびtest組み込みコマンドは、オプションを受け入れないと扱わない--特別な。exitlogoutbreakcontinuelet、およびshift組み込みコマンドで始まる引数を受け入れて処理-要求せず--。引数を受け入れるが、オプションの受け入れとして指定されていないその他の組み込み関数は-、無効なオプションとして始まる引数を--解釈し、この解釈を防ぐ必要があります。

オプションの終わりを意味するとecho解釈しないことに注意してください--


2
参照用の+1 man bash(次回のメモ:)。
user3773048

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.