菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
170
0

shell笔记

原创
05/13 14:22
阅读数 2971

shell调试技巧: #使用
[root@game ~]# sh [-xvn] test.sh

#参数解释:
-x:将执行的脚本内容输出出来,可以看到执行的过程
-n:不执行脚本,检查脚本语法是否有问题,给出错误的提示
-v:执行脚本时,先将脚本的内容输出到屏幕上,再执行脚本,如果有错误给出错误提示

使用-n参数进行语法检查: sh -n test7.sh   #脚本没有语法错误,所以没有输出

-v参数:打印错误: sh -v test1.sh  

-x参数:打印执行过程: sh -x test1.sh 

 

2.使用set命令调试

#常用选项
set -n :读命令但并不执行
set -v : 显示读取的所有行
set -x : 显示所有命令及其参数

使用set -x可以缩小调试的作用域范围
set -x开启调试功能,set +x关闭调试功能

#示例
#!/bin/bash
set -x
for i in `seq 9`
do
for n in `seq 9`
do
[ $i -ge $n ] && echo -en "$i x $n" = $(expr $i \* $n)
done
set +x
echo " "
done

#执行效果
[root@game scripts]# sh test6.sh
++ seq 9
+ for i in '`seq 9`'
++ seq 9
+ for n in '`seq 9`'
+ '[' 1 -ge 1 ']'
++ expr 1 '*' 1
+ echo -en '1 x 1' = 1
1 x 1 = 1+ for n in '`seq 9`'
+ '[' 1 -ge 2 ']'
.....
+ for n in '`seq 9`'
+ '[' 1 -ge 9 ']'
+ set +x
#提示:只调试了set -x 和set +x 这个作用域

发表评论

0/200
170 点赞
0 评论
收藏
为你推荐 换一批