调试shell脚本

时间:2019-04-16 23:59:04  来源:igfitidea点击:

运行脚本时使用 -x选项可以调试脚本

bash -x script-name
或者
bash -xv script-name

也可以在脚本中的第一行修改:

#!/bin/bash -x
echo "Hello, World!" 
echo "echo in shell"

执行结果:

[root@rhel6 tmp]# ./hello.sh 
+ echo 'Hello, World!'
Hello, World!
+ echo 'echo in shell'
echo in shell

使用内置命令set进行调试

Bash shell可以通过set命令来打开或者关闭调试。

set -x: 执行命令时显示命令及其参数。
set -v: 显示shell的行号
set -n: 只读取脚本但是不执行。可以用来检查脚本是否有语法错误。

shell调试示例

注意shell脚本内最好不要使用非英文,这里使用中文是为了讲解。
test.sh

#!/bin/bash
### 打开调试模式 ###
set -x

# 运行shell命令
echo "Hello $(LOGNAME)"
echo "今天是 $(date)"
echo "在线用户:"

### 关闭调试模式 ###
set +x

# 其他不需要在调试模式下运行的命令

示例2 noexec.sh

#!/bin/bash
set -n # 只读取,不执行命令
set -o noexec
echo "这是测试"
# 不会创建debug.txt文件
>/tmp/debug.txt