Skip to content

debug#

シェルスクリプトをデバッグする際には、いくつかのツールやテクニックが利用できます。以下は、シェルスクリプトのデバッグに役立つ主な方法を示しています。

  1. set -x および set +x:

    • set -x: これをスクリプトに追加すると、スクリプトが実行される各行が表示されます。これにより、実際にどのコマンドが実行されているかを確認することができます。
    • set +x: デバッグ出力を停止します。
    • 例:
      #!/bin/bash
      
      set -x
      
      echo "Hello, World!"
      
      set +x
      
  2. set -e:

    • このオプションは、スクリプト内のコマンドが非ゼロの終了ステータスを返したときにスクリプトを終了します。これにより、エラーが発生した場所を特定しやすくなります。
  3. set -u:

    • このオプションは、未定義の変数が参照された場合にスクリプトを終了します。
  4. エラーメッセージを表示:

    • エラーメッセージや変数の内容をechoprintfで出力することで、問題の原因を特定する手がかりを得ることができます。
  5. trap コマンド:

    • シェルスクリプトでエラーが発生した場合に特定のアクションをトリガーするために trap コマンドを使用することができます。
    • 例: ERR シグナルに対してトラップを設定して、エラー時にメッセージを表示する。
      trap 'echo "Error occurred at $LINENO."' ERR
      
  6. 外部ツール:

    • shellcheck はシェルスクリプトの静的解析ツールで、スクリプト内の一般的な問題やアンチパターンを検出するのに役立ちます。

これらのテクニックやツールを組み合わせることで、シェルスクリプトのデバッグを効果的に行うことができます。