Я пытаюсь перебрать массив, содержащий другие массивы, и эти массивы состоят из строк с пробелами. Проблема в том, что я не могу сохранить промежуток в строке. Строка с пробелами делится на несколько элементов, если я изменяю IFS на \n, или все элементы массива рассматриваются как 1 элемент, если я оставлю IFS без изменений здесь пример кода:
#!/bin/sh
low1=("AA QQ" "BB LL")
low2=("CC" "DD")
low3=("EE" "FF")
high=(low1 low2 low3)
for high_item in ${high[@]}
do
eval arrayz=\${$high_item[@]}
#IFS=$'\n'
for item in $arrayz
do
echo $item
done
done
Вывод:
AA QQ BB LL CC DD EE FF
Как вы видите, элементы "AA QQ" и "BB LL" были разделены.
Если я раскомментирую строку, которая устанавливает IFS
в \n
, я получаю следующее:
AA QQ BB LL CC DD EE FF
Теперь "AA QQ" и "BB LL" объединены!
В любом случае я могу сохранить эти элементы так же, как они оригинальны... Мне нужен вывод, чтобы выглядеть так:
AA QQ BB LL CC DD EE FF