使用 - 和 - 作为设置位置参数时设置的选项之间的区别

Ank*_*wal 3 linux bash shell

在man bash中提到它set有两个选项---

我想知道在设置位置参数时使用---作为选项set时是否存在任何差异.

当我们在设置位置参数时使用它时,我找不到man bash中提到的任何重大差异.

Jon*_*ler 8

您使用--(双减号)表示shell选项的结束和参数的开始.因此,例如:

set -- -a -b -f somefile
Run Code Online (Sandbox Code Playgroud)

在此之后,$1-a,$2-b,$3-f$4somefile.

没有--,shell将解释-a,-b-f作为shell选项,并将设置$1somefile.

Bash(4.1)手册说(的set):

--如果此选项后面没有参数,则取消设置位置参数.否则,位置参数被设置为参数,即使它们中的一些以' -' 开头.

-发出选项结束信号,将所有剩余参数分配给位置参数.' -x'和' -v'选项已关闭.如果没有参数,则位置参数保持不变.