shell 调试
trap 命令:shell 脚本执行 产生三个伪信号
EXIT | 从一个函数中退出或整个脚本执行完毕 |
---|---|
ERR | 从一条命令返回非零状态时(代表命令执行不成功) |
DEBUG | 脚本中每一条命令执行之前 |
shell 脚本调试方法一
使用过程中需要跟踪变量值,echo 打印太笨,通过捕获debug 信号就可以跟踪全部变量。
trap 'echo "line:$LINENOxxxx$a $b $c "' DEBUG
a=1
if [ "$a" -eq 1 ]
then
b=2
else
b=1
fi
c=3
echo "end"
调试二 开关控制 (export DEUBG=true 控制开关 )
#! /bin/bash
TRACE()
{
if [ "$DEBUG" = "true" ]; then
$@
fi
}
a=1
TRACE echo "a=$a"
if [ "$a" -eq 1 ]
then
b=2
else
b=1
fi
TRACE echo "b=$b"
c=3
TRACE echo "c=$c"