我正在尝试将命令的输出转换为echo -e "a b\nc\nd e"数组.
X=( $(echo -e "a b\nc\nd e") )
Run Code Online (Sandbox Code Playgroud)
拆分每个新行和空白字符的输入:
$ echo ${#X[@]}
> 5
for i in ${X[@]} ; do echo $i ; done
a
b
c
d
e
Run Code Online (Sandbox Code Playgroud)
结果应该是:
for i in ${X[@]} ; do echo $i ; done
a b
c
d e
Run Code Online (Sandbox Code Playgroud)
Sie*_*geX 14
您需要先将内部字段分隔符变量(IFS)更改为换行符.
$ IFS=$'\n'; arr=( $(echo -e "a b\nc\nd e") ); for i in ${arr[@]} ; do echo $i ; done
a b
c
d e
Run Code Online (Sandbox Code Playgroud)