我正在尝试遍历包含其他数组的数组,这些数组由带空格的字符串组成。问题是我似乎无法保留字符串中的间距。如果我将 IFS 更改为 \n,则带有空格的字符串将被分成多个项目,或者如果我保持 IFS 不变,则数组的所有元素都被视为 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 二 抄送 DD EE 法郎
如您所见,元素“AA QQ”和“BB LL”已被拆分。
如果我取消注释设置IFS
为的行,\n
我会得到以下信息:
AA QQ BB LL 抄送 东风
现在“AA QQ”和“BB LL”连在一起了!
无论如何我可以保留这些元素,就像它们原来的一样......我需要输出看起来像这样:
AAQQ BB LL 抄送 DD EE 法郎