在man bash中提到它set有两个选项-和--
我想知道在设置位置参数时使用-和--作为选项set时是否存在任何差异.
当我们在设置位置参数时使用它时,我找不到man bash中提到的任何重大差异.
您使用--(双减号)表示shell选项的结束和参数的开始.因此,例如:
set -- -a -b -f somefile
Run Code Online (Sandbox Code Playgroud)
在此之后,$1是-a,$2是-b,$3是-f和$4是somefile.
没有--,shell将解释-a,-b并-f作为shell选项,并将设置$1为somefile.
Bash(4.1)手册说(的set):
--如果此选项后面没有参数,则取消设置位置参数.否则,位置参数被设置为参数,即使它们中的一些以'-' 开头.
-发出选项结束信号,将所有剩余参数分配给位置参数.'-x'和'-v'选项已关闭.如果没有参数,则位置参数保持不变.