unix set命令集 - “$ @”" $ i"含义

时间:2016-03-24 18:26:59

标签: bash unix

我对单行bash脚本感到困惑

for i in "$@"
do 
  set -- "$@" "$i" // what does it mean?
done

我可以理解$ @是传入的所有变量,而我是$ @中的每个元素,但是,我无法确定是什么

    set -- "$@" "$i" 

的装置。

感谢。

1 个答案:

答案 0 :(得分:14)

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

具有相同的效果
$ set -- a b c
$ echo "$@"
a b c
$ set -- "$@" "$@"
echo "$@"
a b c a b c