2012-01-27 6 views

答えて

3

はい、あなたはfooで何か他のもののためにargs配列を必要としない場合、あなたは完全にSiegeXの答えのようにそれを避けることができshift

foo(){ 
    if [[ $1 == 'something' ]]; then 
    shift 
    bar "[email protected]" 
    fi 
} 

foo "[email protected]" 
+0

ありがとう!引用符は 'foo" $ @ "と' bar "$ @" 'に本当に必要ですか? –

+2

@MishaMoroshkoそれは必要ではありませんが、明示的に理由がない限り、変数を常に引用する必要があります。たいていあなたは単語の分割をしたくない*。 '[]]'の中に単語分割の問題がないので、 '$ 1'を引用しませんでした。 – SiegeX

+0

常に良い情報@SiegeX .. :) +1 –

3

を使用しています。他の理由でargsが必要な場合は、最も簡単な方法です。

コードにバグがあります。 barに電話すると、最初の要素はargsに過ぎません。すべての要素を渡すには、これを行う必要があります:

bar "${args[@]}" 
関連する問題