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

问题描述 投票:4回答:1

我对单行bash脚本感到困惑

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

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

    set -- "$@" "$i" 

手段。

谢谢。

bash unix
1个回答
14
投票

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

$ set -- a b c
$ echo "$@"
a b c
$ set -- "$@" "$@"
echo "$@"
a b c a b c
© www.soinside.com 2019 - 2024. All rights reserved.