出力

出力

私が作成しているスクリプトの場合は、コマンド出力を配列に変換する必要があります。単純化するために、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>

関連情報