Bash終了と終了ステータスコード

1329 ワード

-----------------------------------------------------------------Sun-------------------------------------------------------------------
一、退出状態コード
1.終了
exitはスクリプトを終了するために使用され、値も返され、この値はスクリプトの親プロセスに渡され、親プロセスはこの値を使用して次の処理を行います.
2.終了ステータスコード
各コマンドは、終了ステータスコード(戻りステータスとも呼ばれる場合があります)を返します.
成功したコマンドは0を返し、成功しないコマンドはゼロ以外の値を返し、ゼロ以外の値は通常エラーコードとして解釈されます.
同様に、スクリプト内の関数とスクリプト自体も終了ステータスコードを返します.スクリプトまたはスクリプト関数で実行される最後のコマンドは、ステータスコードを終了することを決定します.
スクリプトでは、exit nnnコマンドはnnn終了コードをshellに渡します(nnnは10進数で、範囲は0-255でなければなりません).スクリプトがパラメータを持たないexitコマンドで終了すると、スクリプトの終了ステータスコードは、スクリプトで最後に実行されるコマンドによって決定されます(exit以前のコマンドです).
#!/bin/bash
echo hello
echo $?        #     0,       

lskdf            #    
echo $?       #     ,      

exit 113       #     
                   # echo $?           113 
$? 前のコマンドの実行結果を指します.
二、一つの条件を反転する使い方
#!/bin/bash

true
echo "exit status of \"true\" = $? "             #exit status of "true" = 0 


! true
echo "exit status of \"!true\" = $? "            #exit status of "! true" = 1

! コマンドとの間にスペースが必要です.
一つの命令なら!最初にBashの履歴メカニズムが有効になります
 $ true
 $ echo $?
0
 $ !true
 $ true       //  !true         true
 $ echo $?
0

今回は結果を反転させず、前のコマンドtrueを繰り返しただけです.