前言
Bash脚本是Linux操作系统的默认脚本语⾔言,既然是编程,调试是必不可少的。用echo输出关键信息是最常⽤用的调试⼿手段。不过当Bash脚本越来越复杂,这种调试⽅式就显得捉襟见肘了。因此本⽂归纳了⼏种常见的Bash脚本调试技巧。
静态调试——打印出执行过程
执行脚本时使用bash 参数的“-‐x”打开跟踪调试
看下⾯面的⼀段脚本test.sh:
#!/bin/bash
echo "Hello $USER,"
echo "Today is $(date +'%Y-%m-%d')"
当我们以root⽤用户执⾏行./test.sh
,打印输出:
Hello root
Today is 2014-09-01
执⾏行bash -x test.sh
,输出为:
+ echo 'Hello root' <--当前执⾏行的命令,前⾯面有⼀一个+号
Hello root <--输出结果,前⾯面没有+号
++ date +%Y-%m-%d <--这⾥里是⼀一个调⽤用,因此前⾯面多了⼀一个+号
+ echo 'Today is 2014-09-01'
Today is 2014-09-01
我们可以看到每⼀⾏执⾏的指令都被打印出来,这样我们能跟踪整个脚本的执⾏过程。其中⼀个‘+’表⽰正在执⾏的命令,如果是调⽤的话,每层‘+’表⽰示更深一层的调⽤。