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を使う方法なども紹介されているが、これが一番手軽でほとんどの場合十分だと思う。