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

Ted*_*ddy 4 unix bash

我对单行bash脚本感到困惑

for i in "$@"
do 
  set -- "$@" "$i" // what does it mean?
done
Run Code Online (Sandbox Code Playgroud)

我能理解$ @是传入的所有变量,而且我是$ @中的每一个元素,但是,我无法想象是什么

    set -- "$@" "$i" 
Run Code Online (Sandbox Code Playgroud)

手段.

谢谢.

che*_*ner 16

它将值附加$i到位置参数的末尾.不知道为什么会想要这样做,但它基本上是一个加倍参数的冗长方式.它有同样的影响

$ set -- a b c
$ echo "$@"
a b c
$ set -- "$@" "$@"
echo "$@"
a b c a b c
Run Code Online (Sandbox Code Playgroud)