打击“内联”条件语句
我的目标是一个参数添加到一个程序正在执行,如果一个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