如果存在 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
虽然,这是唯一的选择?
如果存在 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
虽然,这是唯一的选择?
使用 bash参数扩展:
bob -a some_arg ${VAR:+-b "$VAR"}
一些好的文档:http ://wiki.bash-hackers.org/syntax/pe
并且LANG=C man bash | less +/'Parameter Expansion'
您可以为此使用数组(请参阅Arrays):
args=( -a some_args )
if [ ... ] ; then
args+=( -b "${VAR}" )
fi
bob "${args[@]}"