Изменяемый список или структура массива в Bash? Как я могу легко добавить к нему?

Я пытаюсь собрать строковые значения в сценарии удара. Каков самый простой способ, которым я могу добавить строковые значения к списку или структуре массива, таким образом, что я могу повторить их в конце?

59
задан Joe 6 January 2010 в 13:59
поделиться

5 ответов

[
$ arr=(1 2 3)
$ arr+=(4)
$ echo ${arr[@]}
1 2 3 4
] [

] Так как Баш использует разреженные массивы, то не следует использовать в качестве индекса счетчик элементов []${#arr}[]. Однако массив индексов можно получить следующим образом:[

] [
$ indices=(${!arr[@]})
]
99
ответ дан 24 November 2019 в 18:19
поделиться
[
$ for i in "string1" "string2" "string3"
> do
> array+=($i)
> done
$ echo ${array[@]}
string1 string2 string3
].
2
ответ дан 24 November 2019 в 18:19
поделиться

Чтобы добавить к тому, что предложил Игнасио в другом ответе:

foo=(a b c)
foo=("${foo[@]}" d) # push element 'd'

foo[${#foo[*]}]="e" # push element 'e'

for i in "${foo[@]}"; do echo "$i" ; done
3
ответ дан 24 November 2019 в 18:19
поделиться
foo=(a b c)
foo=("${foo[@]}" d)
for i in "${foo[@]}"; do echo "$i" ; done
11
ответ дан 24 November 2019 в 18:19
поделиться

Довольно непонятный синтаксис для добавления в конец массива в bash:

myarr[${#myarr[*]}]=”$newitem”
2
ответ дан 24 November 2019 в 18:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: