私はアララに電話したいdialog:
dialog --menu Choose: 0 40 10 A '' B '' C ''
を除いてA、BおよびCは動的クエリの結果です。この質問のために、後者は{ echo A; echo B; echo C; }です。
次の方法で、目的のコマンドラインを取得できます。
{ echo A; echo B; echo C; } | sed -e "s/\$/ ''/;"
しかし:
echo $({ echo A; echo B; echo C; } | sed -e "s/\$/ ''/;")
およびその出力:
A '' B '' C ''
コマンド置換の結果が単語分割のみであるが''、空の引数として解釈されず、冗長に渡されることを示しますecho(したがって、dialogメニュー項目の説明は表示されず、文字通り''s になります)。
配列を使用して bash でこれを回避できますが、欠けている簡単な解決策はありますか?
与えられた
$ e() { printf "tag: [$1] item: [$2]"; }
$ e $(echo "A ''")
$ tag: [A] item: ['']
$(...)アイテムが[]の代わりになるように、パーツを変更するにはどうすればよいですか['']。