Hack 86. シェルスクリプトデバッグする
シェルスクリプトをデバッグするには、シェルスクリプト内の先頭で set -xv を使用します。
$ cat filesize.sh #!/bin/bash for filesize in $(ls -l . | grep "^-" | awk '{print $5}') do let totalsize=$totalsize+$filesize done echo "Total file size in current directory: $totalsize"
$ ./filesize.sh Total file size in current directory: 652
以下に示すように出力をデバッグするには、シェルスクリプト内に set –xv を追加します。
$ cat filesize.sh #!/bin/bash set -xv for filesize in $(ls -l . | grep "^-" | awk '{print $5}') do let totalsize=$totalsize+$filesize done echo "Total file size in current directory: $totalsize"
$ ./fs.sh ++ ls -l . ++ grep '^-' ++ awk '{print $5}' + for filesize in '$(ls -l . | grep "^-" | awk '\''{print $5}'\'')' + let totalsize=+178 + for filesize in '$(ls -l . | grep "^-" | awk '\''{print $5}'\'')' + let totalsize=178+285 + for filesize in '$(ls -l . | grep "^-" | awk '\''{print $5}'\'')' + let totalsize=463+189 + echo 'Total file size in current directory: 652' Total file size in current directory: 652
シェルスクリプト内で –xv をセットする代わりに
以下に示すようにシェルスクリプト実行中に渡すこともできます。
$ bash -xv filesize.sh