我有一个函数(不是我创建的),它在引号内输出一系列字符串:
command <args>
“Foo”
“FooBar”
“Foo Bar”
“FooBar/Foo Bar”
当我尝试将它分配给一个数组(Bash;BSD/Mac)时,我得到的是 7 个元素,而不是 4 个元素。例如,因为我${array[2]}
应该得到,“Foo Bar”
但我得到的下”Foo
一个元素是Bar”
。任何没有空格的元素都可以正常工作(即${array[0]}
=“Foo”)
如何将引号之间的每个元素(包括空格)分配给元素本身由空格(?)分隔的数组?
现在,我正在考虑使用 sed/awk 来“去掉”引号,但我认为应该有更好、更有效的方法。
目前,我将命令的输出(看起来与上面的输出完全相同,包括引号)分配给临时变量,然后将其分配给数组。
_tempvar=“$(command <args>)”
declare -a _array=(${_tempvar})