.sh文件调试linux,Linux shell调试

shell 脚本常用的调试方式有

1.echo在可可疑的地方跟踪了解变量的值,并且也可以了解后续脚本的动作。

2.用tee过滤器来检查临界点的进程和数据流

3.设置选项-n -v -x  常用

scriptname  为 脚本名字

1)sh -n scriptname 不会运行脚本,用来检查脚本中的语法错误。

等同于把set -n和set -o -noexec 设置到脚本,注意有些语法错误还是不能被解析出来

脚本内容:

#!/bin/sh

echo debug shell

ehco #书写错误

执行:

[db10]:[/dsg10]$ sh -n test.sh

没有任何显示结果

2)sh -v scriptname 在执行一个脚本命令之前,打印这个命令.

等同于在脚本中设置set -v,set -v verbose-n -v 可以一起使用,sh -vn scriptname可以打印出详细的语法检查

[db10]:[/dsg10]$ sh  -v  test.sh

#!/bin/sh

echo debug shell

debug shell

ehco

test.sh: line 3: ehco: command not found

3)sh -x scriptname 打印脚本的执行结果

等同于脚本中设置 set -x,set -o -xtrace set -u 或 set -o nuunset设置在脚本中可以再没有声明的变量的地方,打印一个错误消息

[db10]:[/dsg10]$ vi test.sh

set -o -xtrace

#!/bin/sh

set -x -u

echo debug shell

ehco                 #错误语法

echo ${VAR}          #未声明变量

[db10]:[/dsg10]$ sh test.sh

+ echo debug shell

debug shell

+ ehco

test.sh: line 6: ehco: command not found   #错误提示

test.sh: line 9: VAR: unbound variable     #未声明的变量抛出来了

4.用assert函数在脚本的临界点上测试变量或者条件

5.用变量$LINENO和内建命令caller

6.捕捉exit,脚本中then exit会触发0,即结束脚本本身,终结进程。这常用来捕捉exit命令做某事,比如强制打印变量值,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值