logo
Published on

Bashのデバッグログ(トレース)を装飾してカラフルに

Authors

Bashのデバッグログ(トレース)をかっこよくするだけです。

Bashのデバッグログ(トレース)を装飾して、より見やすく、カラフルに表示する方法を紹介します。この方法を使用すると、デバッグ情報が見やすくなり、エディタやログでの作業が楽しくなります。

PS4のカスタマイズ

Bashのデバッグログを装飾するには、PS4 環境変数をカスタマイズします。以下は、PS4 をカラフルに装飾する例です:

red=$'\e[1;31m'
grn=$'\e[1;32m'
yel=$'\e[1;33m'
blu=$'\e[1;34m'
mag=$'\e[1;35m'
cyn=$'\e[1;36m'
end=$'\e[0m'

export PS4='+(v\V ${yel}\#${end} ${cyn}\t${end} ${mag}${BASH_SOURCE}:${LINENO}${end}): ${blu}${FUNCNAME:+$FUNCNAME()}${end}: '

このコードは、PS4 をカスタマイズしてデバッグログの各部分に色を付け、関数名やファイル名、行番号などを装飾します。

トグルデバッグ

さらに、デバッグを簡単に有効または無効に切り替えるための関数 sx を追加することもできます。以下は sx 関数の例です:

sx() {
  # "set -x/+x"をトグルするためのコマンド
  # 例: sx
  if [[ ${sx_status} =~ enabled ]]; then
    set +x
    printf "\n\n${grn}デバッグが無効になりました。${end}\n\n"
    sx_status=disabled
    return 0
  elif [[ ${sx_status} =~ disabled| ]]; then
    set -x
    printf "\n\n${red}デバッグが有効になりました。${end}\n\n"
    sx_status=enabled
    return 0
  fi
}

この sx 関数を使用すると、デバッグを有効または無効に切り替えることができ、デバッグステータスをカラフルに表示します。

これらのカスタマイズを使用することで、Bashのデバッグログが見やすく、トレースが楽しくなるかもしれません。

デバッグログの表示例

デバッグステータスの表示例

以上となります。