Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 什么';s";设置--”$progname"&引用$@&引用&引用;在shell脚本中是什么意思?_Linux_Shell - Fatal编程技术网

Linux 什么';s";设置--”$progname"&引用$@&引用&引用;在shell脚本中是什么意思?

Linux 什么';s";设置--”$progname"&引用$@&引用&引用;在shell脚本中是什么意思?,linux,shell,Linux,Shell,我从configure.ac构建脚本中读取了这一行。我在谷歌上搜索过答案,但没有找到 我假设它是shell脚本,但这意味着什么,特别是对于-- set -- "$progname" "$@" --是一个内置的bash,也是许多unix命令用来表示命令结束选项的东西。因此,如果您有类似以下内容: grep -- -v file -v不会被解释为grep选项,而是一个参数(因此您可以对-v进行grep) $@是传递到脚本中的所有参数的列表(我假设set命令是其中的一部分) --确保作为脚本一部分

我从configure.ac构建脚本中读取了这一行。我在谷歌上搜索过答案,但没有找到

我假设它是shell脚本,但这意味着什么,特别是对于
--

set -- "$progname" "$@"
--
是一个内置的bash,也是许多unix命令用来表示命令结束选项的东西。因此,如果您有类似以下内容:

grep -- -v file
-v
不会被解释为grep选项,而是一个参数(因此您可以对
-v
进行grep)

$@
是传递到脚本中的所有参数的列表(我假设
set
命令是其中的一部分)


--
确保作为脚本一部分传入的任何选项都不会被解释为
set
的选项,而是由
$progname
变量表示的命令的选项。

来自
帮助集

--
的原因是确保即使
“$progname”
“$@”
包含破折号,它们也不会被解释为命令行选项

set
更改存储在
$@
中的位置参数。因此,在本例中,它将
“$progname”
附加到脚本接收到的位置参数的开头

  --  Assign any remaining arguments to the positional parameters.
      If there are no remaining arguments, the positional parameters
      are unset.