如何在bash脚本中有条件地添加额外的参数?

bea*_*tak 3 bash shell

有一个脚本调用其他程序.以下是program.sh.它可能看起来没有意义,但我省略了很多细节......让我们说我想坚持结构.

#!/usr/bin/env bash
function run_this {
    /usr/bin/foo -A -B -C
}
run_this
Run Code Online (Sandbox Code Playgroud)

我想改变传递给/usr/bin/foo的参数传递给的参数program.sh.因此,举例来说,如果你打电话program.sh --quiet,然后/usr/bin/foo -A -B -C -X.实现这一目标的最佳方法是什么?

Ign*_*ams 7

使用数组.

cmd=(/usr/bin/foo -A -B -C)
if somecond; then
  cmd+=(-X)
fi
"${cmd[@]}"
Run Code Online (Sandbox Code Playgroud)