Bash
Bash - 從命令輸出創建數組時出現問題,該命令輸出包含帶空格的引用文本
對於我正在製作的腳本,我需要將命令的輸出轉換為數組。為了簡化,我使用 echo 做了一個例子:
arr=( $(echo '"test example" "test2 example"') )
我想要的是數組的第一個元素
test example
但是這樣做時:
echo ${arr[0]}
我明白了
"test
我必須做什麼才能得到我想要的結果?
假設echo不會像命令那樣產生正確的輸出,因此必須包含sed
mapfile -t arr < <( echo '"test example1" "test2 example2"' | sed 's/" "/"\n"/g' )
eval "arr=( $(echo '"test example" "test2 example"') )" echo "${arr[0]}" for e in "${arr[@]}"; do echo "<$e>" done
輸出
test example <test example> <test2 example>