debug#
シェルスクリプトをデバッグする際には、いくつかのツールやテクニックが利用できます。以下は、シェルスクリプトのデバッグに役立つ主な方法を示しています。
-
set -x
およびset +x
:set -x
: これをスクリプトに追加すると、スクリプトが実行される各行が表示されます。これにより、実際にどのコマンドが実行されているかを確認することができます。set +x
: デバッグ出力を停止します。- 例:
-
set -e
:- このオプションは、スクリプト内のコマンドが非ゼロの終了ステータスを返したときにスクリプトを終了します。これにより、エラーが発生した場所を特定しやすくなります。
-
set -u
:- このオプションは、未定義の変数が参照された場合にスクリプトを終了します。
-
エラーメッセージを表示:
- エラーメッセージや変数の内容を
echo
やprintf
で出力することで、問題の原因を特定する手がかりを得ることができます。
- エラーメッセージや変数の内容を
-
trap コマンド:
- シェルスクリプトでエラーが発生した場合に特定のアクションをトリガーするために
trap
コマンドを使用することができます。 - 例: ERR シグナルに対してトラップを設定して、エラー時にメッセージを表示する。
- シェルスクリプトでエラーが発生した場合に特定のアクションをトリガーするために
-
外部ツール:
shellcheck
はシェルスクリプトの静的解析ツールで、スクリプト内の一般的な問題やアンチパターンを検出するのに役立ちます。
これらのテクニックやツールを組み合わせることで、シェルスクリプトのデバッグを効果的に行うことができます。