command
これにはフラグが必要であると仮定します--flag
。その値が環境変数として提供されている場合にのみ、このフラグを挿入しようとしますVALUE
。
私は以下を試しました:
echo "command ${X+--flag ${VALUE}}"
VALUE=1
echo "command ${X+--flag ${VALUE}}"'
引用:
答え1
command ${VALUE:+--flag "$VALUE"}
変数が定義され、nullでない場合は、command
オプション--flag
とそのオプション引数を使用して実行されます。変数が空であるか定義されていない場合は、引数なしで実行されます。"$VALUE"
VALUE
command
zsh
シェルは引用符のない拡張ではトークン化を実行しないため、SH_WORD_SPLIT
シェルオプション()を設定するか、互換モード()でシェルを実行するか、setopt SH_WORD_SPLIT
次を使用する必要があります。sh
zsh --emulate sh
command ${=VALUE:+--flag "$VALUE"}
...null以外の値に設定され、2つの別々の引数に渡されることを保証--flag
します"$VALUE"
。VALUE
定義されているが空のオプションを追加するには、:
パラメーター置換を削除します。--flag
VALUE