我想通过包含其他数组的数组,并且这些数组由具有空格的字符串组成。问题是我似乎无法保留字符串中的间距。用空格字符串要么分为多个项目,如果我改变IFS为\ n或者,如果我离开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
现在, “QQ AA” 和 “BB LL” 被连接起来!
反正我有可以保留这些元素就像他们原来是...我需要的输出看起来像:
AA QQ BB LL CC DD EE FF
对于'low1',每个元素都在一个单独的行上。对于'low2'和'low3',所有元素都出现在一行上。这是故意的吗? – chepner