私はアララに電話したい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: ['']
$(...)
アイテムが[]
の代わりになるように、パーツを変更するにはどうすればよいですか['']
。