Shell如何让数组与其他Shell参数相同?
我有两个shell脚本a.sh,b.shShell如何让数组与其他Shell参数相同?,shell,Shell,我有两个shell脚本a.sh,b.sh --------a.sh--------- array=(1.1 1.2 1.3) ./b.sh $array --------end a.sh--------- --------b.sh--------- packageVersionArr=$1 for i in ${packageVersionArr[@]}; do echo $i done --------end b.sh--------- console only
--------a.sh---------
array=(1.1 1.2 1.3)
./b.sh $array
--------end a.sh---------
--------b.sh---------
packageVersionArr=$1
for i in ${packageVersionArr[@]}; do
echo $i
done
--------end b.sh---------
console only print: 1.1
我的1.2和1.3在哪里?
$array
是第一个元素,您需要${array[*]}
。请参见中的数组
如果我使用${array[*]},则不正确。b、 sh使用了“packageVersionArr=$1”。只得到1.1这是因为b.sh也有一个bug。
bash -x
$ array=(1.1 1.2 1.3)
+ array=(1.1 1.2 1.3)
$ ./b.sh $array
+ ./b.sh 1.1
...
$ ./b.sh ${array[*]}
+ ./b.sh 1.1 1.2 1.3
...