【发布时间】:2017-02-03 11:36:01
【问题描述】:
我正在尝试在 bash 脚本中声明并附加到一个数组,搜索后我得到了这段代码。
list=()
list+="string"
但是当我把它回显出来时,它什么都没有。 我也试过像这样追加到数组中
list[$[${#list[@]}+1]]="string"
我不明白为什么这不起作用,有人有什么建议吗?
编辑: 问题是列表被附加到一个while循环中。
list=()
git ls-remote origin 'refs/heads/*' | while read sha ref; do
list[${#list[@]}+1]="$ref"
done
declare -p list
请参阅 stackoverflow.com/q/16854280/1126841
【问题讨论】:
-
你是如何回应的?
-
我试过'echo "${list}"'、'echo "$list"'和'echo $list'
-
尝试列表+=('foo')
-
$[...]已过时(使用$((...))代替)且不必要;常规数组的索引在算术上下文中自动评估,因此list[${#list[@]}+1]="string"就足够了。
标签: arrays bash append declare