2016-04-27 11 views
2

他のプログラムを呼び出すスクリプトがあります。以下はprogram.shです。それは意味がないように見えるかもしれませんが、私は細部をたくさん省略しています...私はそのまま構造に固執したいとしましょう。追加の引数を条件付きでbashスクリプトに追加する方法はありますか?

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

私はprogram.shに渡される引数によって/usr/bin/fooに渡される引数を変更したいです。たとえば、program.sh --quietに電話する場合は/usr/bin/foo -A -B -C -Xとします。これを達成する最良の方法は何ですか?

+0

すべての引数をfooに渡すだけの場合は、foo $ *を使用します。/usr/bin/foo -A -B -C $ * – user5976242

答えて

4

配列を使用してください。

cmd=(/usr/bin/foo -A -B -C) 
if somecond; then 
    cmd+=(-X) 
fi 
"${cmd[@]}" 
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" 
関連する問題