スクリプトが思い通りに動かないときのデバッグ方法を解説します。bashには便利なデバッグオプションが揃っています。
set -x:実行コマンドをトレース表示
#!/bin/bash
set -x # デバッグモードON
name="Taro"
echo "名前: $name"
set +x # デバッグモードOFFset -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で未定義変数の使用をエラーにしてバグを防げる



コメント