問題一覧に戻る
上級シェルスクリプト
問題55: エラーハンドリング - エラー処理とデバッグ

シェルスクリプトにおけるエラーハンドリングとデバッグ技術を学びます。set オプションによるエラー時の動作制御、trap によるエラー捕捉、デバッグモードの使用、適切なエラーメッセージの出力方法を習得し、堅牢なスクリプトを作成しましょう。

#!/bin/bash
# エラー処理オプションの設定
set # Exit on error
set # Exit on undefined variable

# エラートラップの設定
'echo "Error occurred on line $LINENO"' ERR

# コマンドの存在確認
if ! command git &> /dev/null; then
echo "git is not installed"
exit 1
fi

# デバッグモードを有効化
-x # Enable debug mode

# エラーハンドリングの例
function safe_divide() {
local a=$1
local b=$2

if [ "$b" -eq 0 ]; then
echo "Error: Division by zero" >&
return 1
fi

echo $((a / b))
}

# 終了ステータスの確認
result=$(safe_divide 10 2) || { echo "Division failed"; exit ; }
echo "Result: $result"