括弧で囲まれた出力を変数として収集

括弧で囲まれた出力を変数として収集

このようなスクリプトがあります。

{
    echo ...
    echo ...
} | iconv --to-code UTF-16LE | base64 -w0

の出力を{}変数として収集できますか?

私はこのような最小限のケースを試しました。

a={echo 123;}

しかし、構文エラーのみが発生する

bash: syntax error near unexpected token `}'

どんなアイデアがありますか?

答え1

私は以下をお勧めします:

a=$(
echo 123
echo 456
)

または

a=$(echo 123; echo 456)

答え2

a="$({ echo 1; echo 2; echo 3;})"

しかし、中かっこは必要ないかもしれません。

答え3

はい、可能です:

$ {
    echo Hello
    echo World
} | { 
    read -d '' -a var ; 
    echo "${var[@]}"; 
}
Hello World

ただし、2 番目の中かっこの外では var は定義されません。

関連情報