私が作成しているスクリプトの場合は、コマンド出力を配列に変換する必要があります。単純化するために、echoを使用して例を作成しました。
arr=( $(echo '"test example" "test2 example"') )
私が望むのは配列の最初の要素です
test example
しかし、これを行うとき:
echo ${arr[0]}
わかりました。
"test
私が望む結果を得るにはどうすればよいですか?
答え1
考えるエココマンドなどの正しい出力を生成しないため、次のものを含める必要があります。sed
mapfile -t arr < <(
echo '"test example1" "test2 example2"' |
sed 's/" "/"\n"/g'
)
答え2
eval "arr=( $(echo '"test example" "test2 example"') )"
echo "${arr[0]}"
for e in "${arr[@]}"; do
echo "<$e>"
done
出力
test example
<test example>
<test2 example>