bashスクリプトをデバッグする方法

  • 300
    いいね
  • 0
    コメント

debugging - How to debug a bash script? - Unix & Linux Stack Exchangeより

bash 4.1以上にて

スクリプトの先頭に次のように書いておく

#!/bin/bash

exec 5> debug_output.txt
BASH_XTRACEFD="5"
PS4='$LINENO: '
set -x

するとdebug_output.txtにログが出力される。

exec 5>はファイルディスクリプタ5番をdebug_output.txtにするという意味。
PS4はトレース出力の際に表示されるプロンプト。$LINENOにより行番号を表示している。
set -xは実行するコマンドをトレース出力させる。

元記事にはbashdb、log4bash、Eclipse、Visual Studioo Codeを使う方法なども紹介されているが、これが一番手軽でほとんどの場合十分だと思う。