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

时间:2016-04-27 21:19:28

标签: bash shell

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

#!/usr/bin/env bash
function run_this {
    /usr/bin/foo -A -B -C
}
run_this

我想通过传递给/usr/bin/foo的参数更改传递给program.sh的参数。例如,如果您致电program.sh --quiet,请致电/usr/bin/foo -A -B -C -X。实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:7)

使用数组。

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

答案 1 :(得分:0)

您可以添加条件。我确信没有重复的方法可以做到这一点,但这应该有效:

#!/bin/bash

function run_this {
    if [[ "$1" = "--quiet" ]]; then
       /usr/bin/foo -A -B -C -X
    else 
       /usr/bin/foo -A -B -C
    fi
}
run_this "$1"