如何在单行Bash命令中使用条件语句?

7

我的目标是,如果存在一个bash变量,则向正在执行的程序添加一个参数,如下所示:

bob -a some_arg (( 如果我们定义了 ${VAR},则将 '-b ${VAR}' 添加为参数 ))

我想避免像这样的情况:

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

虽然,这是唯一的选择吗?

2个回答

10

测试:printf "%s\n" -a some_arg ${VAR:+..} - Nahuel Fouilleul

1
你可以使用数组来实现这个功能(参见数组):
args=( -a some_args )
if [ ... ] ; then
  args+=( -b "${VAR}" )
fi
bob "${args[@]}"

嗯...其实不确定那是否回答了问题。 - Mat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接