GNU/Linux >> Linux の 問題 >  >> Linux

Bashスクリプトをデバッグする方法は?

エラーや予期しない動作について、bashの一部のスクリプトで問題が発生しています。問題の原因を調査して、修正を適用できるようにしたいと思います。より多くの情報を取得するために、bashのある種の「デバッグモード」を有効にする方法はありますか?

承認された回答:

bash -x ./script.shを使用してbashスクリプトを開始します または、スクリプトにset -xを追加します デバッグ出力を確認します。

bashで追加 4.1以降:

デバッグ出力を別のファイルに書き込みたい場合は、これをスクリプトに追加します。

exec 5> debug_output.txt
BASH_XTRACEFD="5"

参照:https://stackoverflow.com/a/25593226/3776858

行番号を確認したい場合は、次を追加してください:

PS4='$LINENO: '

loggerにアクセスできる場合 コマンドを実行すると、これを使用して、タイムスタンプ、スクリプト名、および行番号を使用して、syslogを介してデバッグ出力を書き込むことができます。

#!/bin/bash

exec 5> >(logger -t $0)
BASH_XTRACEFD="5"
PS4='$LINENO: '
set -x

# Place your code here

オプション-pを使用できます loggerの ローカルsyslogを介して独自のログファイルに出力を書き込むための個々の機能とレベルを設定するコマンド。


Linux
  1. VimでBashスクリプトを強調表示するには?

  2. パラメータをBashスクリプトに渡す方法は?

  3. ファイルを bash シェル スクリプトに含める方法

  1. N秒ごとにbashスクリプトを繰り返し実行するには?

  2. bashスクリプトを使用してcrontabジョブをcrontabに追加するには?

  3. bash スクリプトを実行するには?

  1. upstart ジョブをデバッグするにはどうすればよいですか?

  2. bash スクリプトで unicode を grep する方法

  3. タイムスタンプをbashスクリプトログに追加するには?