他の配列を含む配列をループしようとしていますが、これらの配列はスペースを含む文字列で構成されています。問題は、文字列の間隔を維持できないように見えることです。スペースを持つ文字列は、ifsを\ nに変更する場合、複数のアイテムに分割されます。または、アレイのすべての要素が1アイテムとして表示されます。
#!/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 EEFF
「AA QQ」と「BB LL」が連結されました!
とにかく、元の要素と同じようにこれらの要素を保存できますか...出力を次のようにする必要があります。
AA QQ BBLL CC DD EE FF