シェルスクリプト

シェルスクリプトのデバッグ方法【bashデバッグの全技術】

シェルスクリプト
記事内に広告が含まれています。

スクリプトが思い通りに動かないときのデバッグ方法を解説します。bashには便利なデバッグオプションが揃っています。

set -x:実行コマンドをトレース表示

#!/bin/bash
set -x  # デバッグモードON
name="Taro"
echo "名前: $name"
set +x  # デバッグモードOFF

set -x を有効にすると各コマンドが + 付きで表示され、変数の展開結果も確認できます。

bash -x で実行する

bash -x myscript.sh

よく使うデバッグオプション

オプション効果
set -x実行コマンドをトレース表示
set -eエラー発生時に即終了
set -u未定義変数の参照をエラーにする
set -o pipefailパイプ内のエラーを検知する
set -euxo pipefail  # まとめて設定(本番スクリプト推奨)

環境変数でデバッグを切り替える

debug() { [ "${DEBUG:-false}" = "true" ] && echo "[DEBUG] $*" >&2; }
debug "name=$name"
# DEBUG=true ./script.sh で有効化

まとめ

  • set -x / bash -x でコマンドの実行トレースを表示できる
  • set -euo pipefail の組み合わせでエラーを見逃さない
  • set -u で未定義変数の使用をエラーにしてバグを防げる

コメント

タイトルとURLをコピーしました