什么';在许多shell命令中使用“---”作为分隔符的原因是什么?

什么';在许多shell命令中使用“---”作为分隔符的原因是什么?,shell,Shell,例如 git diff[options][[-][…] 这里使用--的原因是什么?是否将位置参数分组,即commit和path?此解释是否与其他命令对--的用法一致?此符号的一般用法在以下内容中指定: 准则10: 第一个--参数不是选项参数,应接受为指示选项结束的分隔符。以下任何参数都应视为操作数,即使它们以“-”字符开头 因此,如果在符合上述指南的工具中将-指定为优先选项,则可以指定以-开头的路径,而不需要前缀,例如/ 虽然POSIX未指定的工具(如git)不需要符合该标准,但这样做仍然是良好

例如

git diff[options][[-][…]


这里使用
--
的原因是什么?是否将位置参数分组,即
commit
path
?此解释是否与其他命令对
--
的用法一致?

此符号的一般用法在以下内容中指定:

准则10: 第一个
--
参数不是选项参数,应接受为指示选项结束的分隔符。以下任何参数都应视为操作数,即使它们以“-”字符开头

因此,如果在符合上述指南的工具中将
-
指定为优先选项,则可以指定以
-
开头的路径,而不需要前缀,例如
/


虽然POSIX未指定的工具(如
git
)不需要符合该标准,但这样做仍然是良好的形式。

这意味着选项的结束。剩下的将是参数,如
path
。请尝试
printf”--\n“
而不首先给出
printf--”-\n“
因为选项通常是以连字符后跟字母或数字的形式给出的,所以双连字符表示“选项:无选项”或“选项:无更多选项”很好。我觉得很好。