打击“内联”条件语句

我的目标是一个参数添加到一个程序正在执行,如果一个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"} 

一些好的DOC: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[@]}"

以上是 打击“内联”条件语句 的全部内容, 来源链接: utcz.com/qa/257416.html

回到顶部