Closed6

Bashの戻り値によって後続の処理を変更する

not75743not75743

戻り値(終了コード)とは

  • コマンド実行後に返却される値
  • 一般的に0なら正常終了、それ以外なら失敗とされる
    • コマンドごとの終了コードはそのリファレンスを参照
  • $?変数を確認することで、最後に実行されたコマンドの終了コードを確認できる
  • man bashEXIT STATUSの頁に記載されている
not75743not75743

見てみる

test.txtをcatします。testt.txtは存在しません。

~/tmp$ cat test.txt 
test
~/tmp$ echo $?
0
~/tmp$ cat testt.txt
cat: testt.txt: No such file or directory
~/tmp$ echo $?
1
not75743not75743

①終了コード0か1かで処理を変えるスクリプト

catコマンドの終了コードによって処理を変更する

#!/bin/bash

FILE="/path/to/your/file"

cat "$FILE"
retval=$?

if [ $retval -eq 0 ]
then
    echo "成功しました!"
else
    echo "失敗しました…"
fi
not75743not75743

②終了コード1のみ処理を変えるスクリプト

0だとif内の処理は実行しません。
エラー処理に便利

#!/bin/bash

FILE="/path/to/your/file"

cat "$FILE"
retval=$?

if [ $retval -ne 0 ]; then
    echo "失敗しました!"
fi
このスクラップは2023/07/25にクローズされました