オプションパラメーターの終わりを示します。二重ダッシュ「--」対単一ダッシュ「-」? [コピー]

オプションパラメーターの終わりを示します。二重ダッシュ「--」対単一ダッシュ「-」? [コピー]

私は気づいたhttps://unix.stackexchange.com/a/459007/674-、オプション引数の終わりを表すために使用される単一のダッシュです。

--二重ダッシュがオプション引数の終わりを示すこともありますか?

では、それらの違いは何ですか?いつどれを使うべきですか?それらはすべてGNUルールですか?ありがとうございます。

答え1

単一ダッシュは定義に従ってファイルタイプパラメータであり、POSIX準拠のアプリケーションがファイルタイプパラメータの後のオプションを確認することはできません。

デュアルダッシュはオプションの最後にあるPOSIX定義です。その後、ファイルタイプパラメータのみが許可されます。

したがって、最終結果は似ていますが、ルールは異なります。

これはGNUルールではなく、POSIXです。

また、ルールは次のように書くことです。

#!/bin/sh -

または

#!/bin/sh -p

getopt(3)特別なパラメータと機能が未知の時代から始まりました。

答え2

特にBashは-asの同義語を受け入れます--。質問に引用された回答に示されている例では、

#! /bin/bash -

これは Bash に後ろにオプションがないことを知らせるために使用されるので、スクリプト名に関係なく shebang が機能します。たとえば、スクリプト名がある場合はどうなるか考えてみましょう-l

関連情報