Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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
Bash unix set命令集--“$@”&引用$我";意思_Bash_Unix - Fatal编程技术网

Bash unix set命令集--“$@”&引用$我";意思

Bash unix set命令集--“$@”&引用$我";意思,bash,unix,Bash,Unix,我对一行bash脚本感到困惑 for i in "$@" do set -- "$@" "$i" // what does it mean? done 我能理解$@是所有传入的变量,我是$@中的每个元素,但我不知道是什么 set -- "$@" "$i" 意味着 谢谢。它将$i的值附加到位置参数的末尾。不确定为什么要这样做,但这基本上是一种将参数加倍的冗长方式。它的影响与 $ set -- a b c $ echo "$@" a b c $ set -- "$@" "$@"

我对一行bash脚本感到困惑

for i in "$@"
do 
  set -- "$@" "$i" // what does it mean?
done
我能理解$@是所有传入的变量,我是$@中的每个元素,但我不知道是什么

    set -- "$@" "$i" 
意味着


谢谢。

它将
$i
的值附加到位置参数的末尾。不确定为什么要这样做,但这基本上是一种将参数加倍的冗长方式。它的影响与

$ set -- a b c
$ echo "$@"
a b c
$ set -- "$@" "$@"
echo "$@"
a b c a b c

我猜你的脚本并没有像你在关于
$@
的问题中那样使用
字符,它使用了
,对吧?他们确实使用了双引号。我不是问双引号和单引号,我是问的是“智能引号”
“$@”
与常规双引号“$@”相比。仔细观察。