我的目标是,如果存在一个bash变量,则向正在执行的程序添加一个参数,如下所示:
bob -a some_arg (( 如果我们定义了 ${VAR},则将 '-b ${VAR}' 添加为参数 ))
我想避免像这样的情况:
if [[ -z ${VAR} ]]; then
bob -a some_arg
else
bob -a some_arg -b ${VAR}
fi
虽然,这是唯一的选择吗?
我的目标是,如果存在一个bash变量,则向正在执行的程序添加一个参数,如下所示:
bob -a some_arg (( 如果我们定义了 ${VAR},则将 '-b ${VAR}' 添加为参数 ))
我想避免像这样的情况:
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
还有 `LESS=+/'Parameter Expansion' man bash`
args=( -a some_args )
if [ ... ] ; then
args+=( -b "${VAR}" )
fi
bob "${args[@]}"
printf "%s\n" -a some_arg ${VAR:+..}
- Nahuel Fouilleul