Я пытаюсь собрать строковые значения в сценарии удара. Каков самый простой способ, которым я могу добавить строковые значения к списку или структуре массива, таким образом, что я могу повторить их в конце?
$ arr=(1 2 3)
$ arr+=(4)
$ echo ${arr[@]}
1 2 3 4
]
[] Так как Баш использует разреженные массивы, то не следует использовать в качестве индекса счетчик элементов []${#arr}[
]. Однако массив индексов можно получить следующим образом:[
$ indices=(${!arr[@]})
] $ for i in "string1" "string2" "string3"
> do
> array+=($i)
> done
$ echo ${array[@]}
string1 string2 string3
]. Чтобы добавить к тому, что предложил Игнасио в другом ответе:
foo=(a b c)
foo=("${foo[@]}" d) # push element 'd'
foo[${#foo[*]}]="e" # push element 'e'
for i in "${foo[@]}"; do echo "$i" ; done
foo=(a b c)
foo=("${foo[@]}" d)
for i in "${foo[@]}"; do echo "$i" ; done
Довольно непонятный синтаксис для добавления в конец массива в bash:
myarr[${#myarr[*]}]=”$newitem”