【发布时间】:2018-06-24 11:49:50
【问题描述】:
我们用 sdb - sdz range 设置“list”变量
# MAX=z
# list=$(eval echo sd{b..$MAX})
# echo $list
sdb sdc sdd sde sdf sdg sdh sdi sdj sdk sdl sdm sdn sdo sdp sdq sdr sds sdt sdu sdv sdw sdx sdy sdz
到现在还可以
现在我们将数组中的 $list 设置为以下内容
#array=( echo $list )
但是当我们打印数组的第一个值时,我们得到“echo”
#echo ${array[0]}
echo
这里有什么问题?
预期结果:
#echo ${array[0]}
sdb
#echo ${array[1]}
sdc
#echo ${array[2]}
sdc
或
# echo "${list[counter++]}"
【问题讨论】:
-
array=( echo $list )用echo填充array然后是$list在分词、文件名、扩展等之后的内容。谷歌如何使用数组,shell 引用规则,$( foo )vs( foo )等 -
array=($list)、array=( $(echo $list))都可以,但后者不是最佳实践。 (也不是,真的!)直接分配数组。
标签: arrays linux bash shell awk