0
点赞
收藏
分享

微信扫一扫

【shell附加课】shell脚本调试方案详解


文章目录

  • 前言
  • 一. shell脚本开发规范
  • 二. shell脚本调试技巧
  • 1. 使用echo +exit 命令断点调试
  • 2. 使用bash命令参数调优
  • 3. 使用 set 来调试脚本
  • 总结

前言

最近小伙伴们的脚本写的越来越长,写的长了之后就会发现三个苦恼的事情:

  1. 上面定义了变量,后面不知道变量是什么意思了;
  2. 脚本需要一遍遍的调试很麻烦;
  3. 调试脚本只能一次次的运行,查看报错很麻烦。

首先要恭喜你,当你意识到这几个问题的时候,你的脚本level又提升了一个档次,这个时候你需要考虑脚本的规范和脚本的调试方法了。

今天我们就来看看脚本的一些规范和调试技巧

一. shell脚本开发规范

  1. 重视书写习惯; 比如我们写if循环,先写完骨架在开始添加内容。
    比如我们要写if循环,先写下面的内容

#!/bin/bash
if [];then
fi

写引号或者括号也是,先写完() 然后在回到括号里写内容;

这样做有什么好处?

这样做的好处是,不会犯落下了半个括号,或者fi 忘记写的情况。

  1. 要锻炼自己的框架思维;

我们之前写学员管理系统,是按照先写完骨架,在写增加,然后写遍历这样的思维方式来写的,看上去很大的脚本,其实都是一个个小的框架。

框架思维好了,你的函数就会运用的好。

锻炼自己把复杂基本分段实现的能力,先实现一个小的功能在延伸,每个大的功能都是一个个小的功能组成的。

二. shell脚本调试技巧

我们之前已经学习过sh -x ,其实对于调试来讲我们还有很多方法

1. 使用echo +exit 命令断点调试

比如在我们写学员管理系统中,有一个判断学员名字是否在文件中的操作,有的同学使用grep查询出来后定义为变量,再和我们输入的名字做比较。

这个时候我们想判断一下变量是否有名字,就可以使用echo $变量名的方式,后面加exit退出。

为啥要退出?
避免被后面的信息干扰,让我们想要的结果更清晰一点。

2. 使用bash命令参数调优

bash

参数

作用

-n

不会执行改脚本,进查询脚本语法是否有问题,并给出错误提示

-v

在执行脚本时,先输出脚本内容,然后在执行脚本,如果有错误也会提示

-x

将执行结果及脚本内容都输出到屏幕上,可以看到哪一步没有执行成功

3. 使用 set 来调试脚本

[root@ecs-c13b diff]# cat b.sh 
#!/bin/bash
set -x
a=1
echo $a
echo aaa

输出结果

[root@ecs-c13b diff]# bash b.sh
+ a=1
+ echo 1
1
+ echo aaa
aaa

可以看到set -x 和我们在脚本前加bash -x 的效果一样

set 还有个参数-e, 他的作用是,一旦发现脚本的传回值不为0,就立即退出shell,我们就可以判断哪里出现了问题。

总结

方法不是越多越好,掌握一两个调试的方法,能够满足日常工作的基本需求即可。


举报

相关推荐

0 条评论