shell脚本的追踪与排错(脚本不会排错还要脚本有何用)

本文详细介绍了Shell脚本的排错方法,包括通过-n选项进行语法查询,使用-vx选项观察执行过程,以及在命令模式下用:set nu查看行号辅助定位错误。通过这些技巧,可以有效地定位和解决Shell脚本中的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

shell脚本的排错及问题判断

脚本排错及问题判断

[root@localhost ~]#sh [-nvx] 脚本文件

选项与参数∶

-n:不执行脚本,仅查询语法的问题;

-v:在执行脚本前,先将脚本的内容输出到屏幕上;

-x:将使用到的脚本内容(执行过程)显示到屏幕上

1.语法查询

从1到100的整数和的脚本文件

#!/bin/bash
sum=0
i=0
while [ ${i} -ne 100 ]
do
i=$[$i+1]
sum=$[$sum+$i]
done
echo "运算结果是:$sum"

下面我故意把最后的引号改成中文符号,验证一下

在这里插入图片描述

且返回值为非0

[root@localhost ~]#sh -n sum1.sh 
sum1.sh:行9: 寻找匹配的 `"' 是遇到了未预期的文件结束符
sum1.sh:行10: 语法错误: 未预期的文件结尾
[root@localhost ~]#echo $?
2

然后我们再更正字符,再次测试脚本有无语法问题

在这里插入图片描述

2.执行过程查看

例2:

从1到用户输入值的累加整数和,利用sh -x 脚本文件 来查看执行过程

  • 其脚本文件为
#!/bin/bash
read -p "请输入整数值(1-100):" nu
sum=0
i=0
while [ ${i} -ne ${nu} ]
do
i=$[$i+1]
sum=$[sum+i]
done
echo "从1到${nu}的运算结果是:$sum"

  • 查看执行过程

在这里插入图片描述

3.也可用两个选项sh -vx 脚本文件

来查看脚本文件内容的同时,查看脚本的执行过程,思路会更明朗!

这里我用一个函数脚本来验证,如下

#!/bin/bash   #所用shell
function db1 {    #db1是函数名
   read -p "请输入:" value #value是变量名
   return $[$value * 2]   #返回值取所输入的变量名的值和2的乘积的结果值
}
db1   #调用函数
echo $?  #输出返回值(输出上个命令执行结果的返回值)

在这里插入图片描述

4.命令模式下输入 :set nu 回车查看行号

当脚本行数特别多时虽然指定了哪行出错,但有时人眼根本数不过来,就需要命令模式下输入英文字符冒号“:”进入末行模式,然后输入set nu命令回车列出脚本内容对应的行数

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值