Bash数组声明和附加

A.J*_*Jac 0 arrays bash append declare

我试图在bash脚本中声明并附加到一个数组,在搜索之后导致了这个代码.

list=()
list+="string"
Run Code Online (Sandbox Code Playgroud)

但当我回应这一点时,它什么也没有结果.我也试过像这样附加到数组

list[$[${#list[@]}+1]]="string"
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这不起作用,有人有什么建议吗?


编辑: 问题是列表附加到while循环内.

list=()

git ls-remote origin 'refs/heads/*' | while read sha ref; do
    list[${#list[@]}+1]="$ref"
done

declare -p list
Run Code Online (Sandbox Code Playgroud)

请参阅stackoverflow.com/q/16854280/1126841

Ali*_*sel 6

您可以将新字符串附加到数组,如下所示:

#!/bin/bash

mylist=("number one")

#append "number two" to array    
mylist=("${mylist[@]}" "number two")

# print each string in a loop
for mystr in "${mylist[@]}"; do echo "$mystr"; done
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请访问http://wiki.bash-hackers.org/syntax/arrays