模板内容:
#!/bin/bash
_DEBUG="off"
function DEBUG()
{
[ "$_DEBUG" == "on" ] && $@
}
DEBUG echo 'Reading files'
for i in *
do
grep 'something' $i > /dev/null
[ $? -eq 0 ] && echo "Found in $i file"
done
DEBUG set -x
a=2
b=3
c=$(( $a + $b ))
DEBUG set +x
echo "$a + $b = $c"
使用, _debug="off"关掉调试模式, 为”on“开启调试模式, shell调试时候我们都要求显示代码和中间结果,显示通过set -x打开显示代码, set +x关闭不显示代码行。
#调试模式
(base) root@ai-PowerEdge-R740:/opt/asr/kaldi/egs/lesson/v1/test# ./test.sh
Reading files
Found in test.sh file
+ a=2
+ b=3
+ c=5
+ DEBUG set +x
+ '[' on == on ']'
+ set +x
2 + 3 = 5
#注释最后一行,开启所有显示
(base) root@ai-PowerEdge-R740:/opt/asr/kaldi/egs/lesson/v1/test# ./test.sh
Reading files
Found in test.sh file
+ a=2
+ b=3
+ c=5
+ echo '2 + 3 = 5'
2 + 3 = 5
#关闭调试模式
(base) root@ai-PowerEdge-R740:/opt/asr/kaldi/egs/lesson/v1/test# ./test.sh
Found in test.sh file
2 + 3 = 5