在bash中,我不确定我的观察是否正确。对于大多数命令,类似选项的参数(即以--abc
或开头的参数-a
)可以位于命令参数列表中的任何位置,而其他参数在参数列表中具有某个固定位置。
我想知道是否有一些成文/不成文的规则?谢谢!
答案1
简而言之 - 这取决于程序。 bash 所做的是将参数发送到程序的主函数,从那时起,主函数决定如何处理它们。有些程序不关心参数顺序,有些则考虑它。
答案2
这是一个值得注意的示例,其中程序的参数顺序很重要:比较以下输出:
find . -type f -atime 0 -daystart
和:
find . -type f -daystart -atime 0
(在存储文件的驱动器上atime
,我这些天需要添加)。有许多网页专门帮助您开始使用find(1)
,但几乎没有提到这样一个事实:find
,其参数的顺序非常特殊。
答案3
man commandName
会告诉您这对于您尝试使用的命令是否重要,通常,以某些内容开头的-
是修改命令行为的选项,其他内容是命令的参数(您可以将其作为输入)。