当前位置: 首页 > news >正文

shell脚本专家指南笔记----shell错误调试

shell脚本专家指南

自己看书的笔记,要了解详情,可以看原著《shell脚本专家指南》

SHELL 跟踪选项

一: set
1.set -x(xtrace):
显示脚本运行时的冗余输出,每行代码的拓展命令和变量。
每一行都会加上加号(+),提示它是输出跟踪标志
子shell中会加两个加号"++"
2.set -v:
将脚本代码输出
实例代码:
#!/bin/sh
set -x
echo -n "Can you write device drivers?"
read answer
answer=`echo $answer |tr [a-z] [A-Z]`
if [ $answer = Y ]
then
echo "Wow,you must be very skilled"
else
echo "Neither can I,I'm just a example shell script"
fi

3.逐步调试:对程序进行分段跟踪
使用如 -x 减号来打开一个选项
使用 +x 加号来关闭某个选项
set -x
if [ $answer = Y ]
set +x
二:echo
类似程序打印日志。缺点:不想输出的时候不得不注释或者删除这些指令。
改进:
加入可以打开或者关闭的调试层次来实现。
下面如果debug>0就输出后续
#!/bin/sh
debug=1
test $debug -gt 0 && echo "Debug is on"
echo -n "Can you write device drivers?"

相关文章:

  • SpringBoot学习:整合Redis
  • vs20008 新特性复习
  • 分布式技术追踪 2017年第十四期
  • HighID
  • python闲谈--pymysql
  • Tooltip浮动提示框效果(掌握里面的小知识)
  • explicit构造函数
  • 视频转GIF图
  • shell脚本专家指南--库文件
  • 大数据系列之数据仓库Hive安装
  • Linux系统下,启动Tomcat有时报Address already in use
  • 间谍网络(tarjan缩点)
  • 测试工程师的明天在哪里
  • 【php技术】PHP错误类型和屏蔽方法
  • JAVA进程占用CPU分析
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • Git同步原始仓库到Fork仓库中
  • IP路由与转发
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Javascript弹出层-初探
  • java中的hashCode
  • Logstash 参考指南(目录)
  • node 版本过低
  • PhantomJS 安装
  • Python学习之路16-使用API
  • Python中eval与exec的使用及区别
  • SpingCloudBus整合RabbitMQ
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 诡异!React stopPropagation失灵
  • 警报:线上事故之CountDownLatch的威力
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 前端学习笔记之观察者模式
  • 使用 @font-face
  • 双管齐下,VMware的容器新战略
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • UI设计初学者应该如何入门?
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • # .NET Framework中使用命名管道进行进程间通信
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #if 1...#endif
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (WSI分类)WSI分类文献小综述 2024
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (五)网络优化与超参数选择--九五小庞
  • (一)WLAN定义和基本架构转
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)linux 命令大全
  • (转)关于多人操作数据的处理策略
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)