1

私は bash スクリプトの単体テストを作成しており、スクリプトがエラーで終了するかどうかを確認したいと考えています (エラーコードで使用exitします)。

キャッチする方法はありますかexit(私は知ってtrapいます)、コマンドフローを中断しないでください(例外キャッチなど)?

私のテストスクリプト:

do_smth1 && echo OK || echo Fail
do_smth2 && echo OK || echo Fail
do_smth3 && echo OK || echo Fail

私のメインスクリプト:

do_smth1(){
   ...
   ...
   [ $? -eq 0 ] && success || error_exit
}

等々。

すべてのテストを次々と実行したいと思います。最初のコマンドの後にフローが中断されるようになりました。

4

1 に答える 1

1

あなたは書ける:

success=0
error_code=1
do_smth1(){          
   ...          
   ...          
   [ $? -eq 0 ] && return $success || return $error_code         
}

do_smth1 && echo OK || echo Fail             
do_smth2 && echo OK || echo Fail             
do_smth3 && echo OK || echo Fail   

exit と return のマニュアル ページを参照して、いつどちらを使用するかを確認してください。

于 2012-07-21T07:47:18.197 に答える