Если вы объявите массив, используя bash ANSI-C Цитирование
ary=($'AAA\naaa' $'BBB\nbbb' $'CCC\nccc')
Тогда вы получите то, что вам нужно.
Проверка содержимого массива
$ declare -p ary
declare -a ary='([0]="AAA
aaa" [1]="BBB
bbb" [2]="CCC
ccc")'
Или проверьте его с помощью printf:
$ printf '>%s<\n' "${ary[@]}"
>AAA
aaa<
>BBB
bbb<
>CCC
ccc<
Вы не можете написать
var[0]=("AAA
aaa")
, потому что с помощью скобок вы пытаетесьсохранить массив в элементе массива, а bash не разрешает массивы массивов.
Вы могли бы записать
var=(
"AAA
aaa"
"BBB
bbb"
"CCC
ccc"
)
Если у вас естьмассив слов вроде var=(AAA aaa BBB bbb CCC ccc)
, тогда вы можете сгруппировать элементы так:
ary=()
for (( i=0; i < ${#var[@]}; i+=2 )); do
ary+=( "${var[i]}"$'\n'"${var[i+1]}" )
done