6

私の目標は、bash変数が存在する場合に実行されるプログラムに、次のように引数を追加することです。

bob -a some_arg (( if we have ${VAR} defined add '-b ${VAR}' as an argument ))

次のようなことは避けたいです。

if [[ -z ${VAR} ]]; then
    bob -a some_arg
else
    bob -a some_arg -b ${VAR}
fi

しかし、それが唯一の選択肢ですか?

4

2 に答える 2

9

bashパラメータ展開の使用:

bob -a some_arg ${VAR:+-b "$VAR"}

良いドキュメント: http://wiki.bash-hackers.org/syntax/pe

また、LANG=C man bash | less +/'Parameter Expansion'

于 2012-09-30T15:16:21.063 に答える
1

そのために配列を使用できます(Arraysを参照):

args=( -a some_args )
if [ ... ] ; then
  args+=( -b "${VAR}" )
fi
bob "${args[@]}"
于 2012-09-30T15:06:41.923 に答える