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

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

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

ベストアンサー1

次のコマンドを使用してbashスクリプトを起動するbash -x ./script.shか、スクリプトに追加してset -xデバッグ出力を確認してください。


bashバージョン4.1以降の追加機能:

デバッグ出力を別のファイルに書き込むには、次のスクリプトを追加します。

exec 5> debug_output.txt
BASH_XTRACEFD="5"

望むより:https://stackoverflow.com/a/25593226/3776858


行番号を表示するには、以下を追加してください。

PS4='$LINENO: '


loggerコマンドへのアクセス権がある場合は、タイムスタンプ、スクリプト名、行番号など、システムログを介してデバッグ出力を作成できます。

#!/bin/bash

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

# Place your code here

-pコマンドオプションを使用して個々の施設とレベルを設定し、loggerローカルシステムログを介して独自のログファイルに出力を書き込むことができます。

おすすめ記事