数组做参数的关键:
一、测试脚本
#!/bin/bash
echo $1
echo $2
echo $3
echo $4
echo $5
echo $6
echo $7
echo $8
echo $9
echo $10
二、构造数组
atest=("a" "bb cc" "dd ee ff" "gg hh ii jj")
三、测试
atest为数组。此时若把这个数组的内容作为参数调用另一个shell脚本时,写法很关键。
第一种写法:./test.sh ${atest[@]}
执行结果:
a
bb
cc
dd
ee
ff
gg
hh
ii
a0
此时传递的参数为a bb cc dd ee ff gg hh ii jj。把数组的内容组成了一个字符串,已经破坏了原来数组的结构。
第二种写法:./test.sh “${atest[@]}”
执行结果:
a
bb cc
dd ee ff
gg hh ii jj
a0
把数组用双引号括起来,此时传递到test.sh中的参数仍然为数组的原来结构。