2011-11-14 27 views

答えて

3

あなただけに関係なく、それらを呼び出すと、戻り値をキャプチャすることができます。

function validateA() { 
    echo "A [fail]" 
    return 1 
} 

function validateB() { 
    echo "B [ok]" 
    return 0 
} 

validateA ; vA=$? 
validateB ; vB=$? 

if [[ $vA -ne 0 || $vB -ne 0 ]] ; then 
    echo "validation [fail]" 
    exit 1 
else 
    echo "validation [ok]" 
    exit 0 
fi 

この出力:

A [fail] 
B [ok] 
validation [fail] 
1

私の頭に浮かぶ最初のアイデアは、各関数を一貫して呼び出し、戻り値を保存して後で解析することです。このように:

validateA 
a_retval=$? 

validateB 
b_retval=$? 

if [ $a_retval -ne 0 -o $b_retval -ne 0 ]; then 
    echo "validation [fail]" 
    exit 1 
else 
    echo "validation [ok]" 
    exit 0 
fi 
2

私は、同じ質問を持っていたし、このような何かをやってしまった:

rc=0 
if ! validateA ; then rc=1; fi 
if ! validateB ; then rc=1; fi 
return $rc 

それは他の回答と同じ原理が、より凝縮構文です。

関連する問題