【问题标题】:bash array + how to set variable in bash arraybash 数组 + 如何在 bash 数组中设置变量
【发布时间】: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


【解决方案1】:
$ 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
$ echo "${list[1]}"
sdc

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多