エラーや予期しない動作について、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を介して独自のログファイルに出力を書き込むための個々の機能とレベルを設定するコマンド。