仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4220|回复: 19
打印 上一主题 下一主题

[其他Linux] Linux设计怎样调试bash剧本仓酷云

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
#
发表于 2015-1-18 11:37:10 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
写学习日记,这是学习历程的见证,同时我坚持认为是增强学习信念的法宝。以上是我学习Linux的心得体会,希望对大家的学习有所帮助,由于水平有限,本文难免有所欠缺,望请指正。
Bash是Linux操纵体系的默许Shell剧本。Shell是用来处置操纵体系和用户交互的一个程序。Shell的剧本能够匡助用户主动化地和操纵体系举行交互。你也能够了解为一种剧本式的编程。即然有编程,那末,程序的编译器,注释器,调试器就必不成少了,Bash也一样,但在调试方面大概会有一些和编程言语纷歧样的工具和手艺,以是,上面这篇文章次要是申明调试bash剧本的各类手艺。
跟踪剧本的实行

你可让bash打印出你剧本实行的过程当中的一切语句。这很复杂,只必要利用bash的-x选项就能够做到,上面让我们来看一下。

上面的这段剧本,先是输入一个问候语句,然后输入以后的工夫:
1.#!/bin/bash2.echo"Hello$USER,"3.echo"Todayis$(date+"%Y-%m-%d")"上面让我们利用-x选项来运转这段剧本:
1.$bash-xexample_script.sh2.+echo"Hellochenhao,"3.Hellochenhao,4.++date+%Y-%m-%d5.+echo"Todayis2009-08-31"6.Todayis2009-08-31这时候,我们能够看到,bash在运转前打印出了每行命令。并且每行后面的+号标明了嵌套。如许的输入可让你看到命令实行的按次并可让你晓得全部剧本的举动。
在跟踪里输入行号
在一个很年夜的剧本中,你会看到良多良多的实行跟踪的输入,浏览起来十分费力,以是,你能够在每行前加上文件的行号,这会十分有效。要做到如许,你只必要设置上面的情况变量:
1.2.exportPS4="+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}:"让我们看看设置上了PS4这个情况变量后会是甚么样的输入。
1.$bash-xexample_script.sh2.+example_script.sh:2::echo"Hellochenhao,"3.Hellochenhao,4.++example_script.sh:3::date+%Y-%m-%d5.+example_script.sh:3::echo"Todayis2009-08-31"6.Todayis2009-08-31
调试部分的剧本
有些时分,你其实不想调试全部剧本,你只需调试个中的一部分,那末,你能够在你想要调试的剧本之前,挪用“set-x”,停止的时分挪用“set+x”就能够了。以下面的剧本所示:
1.#!/bin/bash2.echo"Hello$USER,"3.set-x4.echo"Todayis$(date%Y-%m-%d)"5.set+x让我们看看运转起来是啥样?
1.$./example_script.sh2.Hellochenhao,3.++example_script.sh:4::date+%Y-%m-%d4.+example_script.sh:4::echo"Todayis2009-08-31"5.Todayis2009-08-316.+example_script.sh:5::set+x注重:我们在运转剧本的时分,不必要利用bash-x了。

日记输入

跟踪日记偶然候太多了,多得都受不了,并且,输入的内容很难浏览。一样平常来讲,我们良多时分只体贴于前提表达式,变量值,或是函数挪用,或是轮回等。。在这类情形下,log一些感乐趣的特定的信息,大概会更好。
利用log前,我们先写一个函数:
1._log(){2.if["$_DEBUG"=="true"];then3.echo1>&2"$@"4.fi5.}因而,你就能够在你的剧本中以下利用:
1.2._log"Copyingfiles..."3.cpsrc/*dst/
  1. 我们能够看到,下面谁人_log函数,必要反省一个_DEBUG变量,只要这个变量是真,才会真正开辟输入日记。如许,你就只必要把持这个开关,而不必要删除你的debug信息。
复制代码
1.2.$_DEBUG=true./example_script.sh利用Bash公用调试器

假如你在写一个相称庞大的剧本,而且,你必要一个完全的像调试其余言语一样的调试器,那末你能够试着用用这个开源软件——bashdb,一个Bash的公用调试器。这个调试器很壮大,你想失掉的功效,他都有,好比,设置断点,单步跟踪,跳出函数,等等。它的用户接口很想GDB,这是他的文档。
(全文完)
本文来自:http://coolshell.cn/?p=1379

文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln
金色的骷髅 该用户已被删除
19#
发表于 2015-7-8 09:29:36 | 只看该作者
查阅经典工具书和Howto,特别是Howto是全球数以万计的Linux、Unix的经验总结非常有参考价值通常40%的问题同样可以解决。
小女巫 该用户已被删除
18#
发表于 2015-5-4 04:20:58 | 只看该作者
即便是非英语国家的人发布技术文档,Linux也都首先翻译成英语在国际学术杂志和网络上发表。
精灵巫婆 该用户已被删除
17#
发表于 2015-4-26 22:10:41 | 只看该作者
随着Linux应用的扩展,出现了不少Linux社区。有一些非常优秀的社区往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。
admin 该用户已被删除
16#
发表于 2015-4-13 08:27:35 | 只看该作者
掌握在Linux系统中安装软件,在安装Linux工具盘后大致日常所需的软件都会有,一般网络提供下载的软件都会有安装说明。
深爱那片海 该用户已被删除
15#
发表于 2015-4-8 19:24:35 | 只看该作者
即便是非英语国家的人发布技术文档,Linux也都首先翻译成英语在国际学术杂志和网络上发表。
老尸 该用户已被删除
14#
发表于 2015-4-6 19:12:20 | 只看该作者
我是学习嵌入式方向的,这学期就选修了这门专业任选课。
爱飞 该用户已被删除
13#
发表于 2015-4-6 13:03:18 | 只看该作者
可以说自己收获很大,基本上完成了老师布置的任务,对于拔高的题目没有去做,因为我了解我的水平,没有时间和精力去做。?
灵魂腐蚀 该用户已被删除
12#
发表于 2015-4-3 13:12:36 | 只看该作者
查阅经典工具书和Howto,特别是Howto是全球数以万计的Linux、Unix的经验总结非常有参考价值通常40%的问题同样可以解决。
山那边是海 该用户已被删除
11#
发表于 2015-3-30 15:06:11 | 只看该作者
工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多。
兰色精灵 该用户已被删除
10#
发表于 2015-3-20 01:54:16 | 只看该作者
为什么要学Linux呢?每个人都有不同的看法,下面我说说自己的感想吧。?
若天明 该用户已被删除
9#
发表于 2015-3-12 19:34:58 | 只看该作者
Linux是参照Unix思想设计的,理解掌握Linux必须按照Unix思维来进行。思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度。
莫相离 该用户已被删除
8#
发表于 2015-3-6 04:01:50 | 只看该作者
Windows有MS-DOS?方式,在该方式下通过输入DOS命令来操作电脑;Linux与Windows类似,也有命令方式,Linux?启动后如果不执行?X-WINDOWS,就会处于命令方式下,必须发命令才能操作电脑。?
柔情似水 该用户已被删除
7#
发表于 2015-2-18 10:50:23 | 只看该作者
下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。
小妖女 该用户已被删除
6#
 楼主| 发表于 2015-2-14 12:51:23 | 只看该作者
一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通。
变相怪杰 该用户已被删除
5#
发表于 2015-2-14 01:35:19 | 只看该作者
了解Linux的网络安全,系统的安全,用户的安全等。安全对于每位用户,管理员来说是非常重要的。
蒙在股里 该用户已被删除
地板
发表于 2015-2-8 20:10:38 | 只看该作者
清楚了解网络的基础知识,特别是在Linux下应用知识,如接入internet等等。
板凳
发表于 2015-2-4 04:54:39 | 只看该作者
学习Linux应具备的。[书籍+网络资源]
谁可相欹 该用户已被删除
沙发
发表于 2015-1-25 21:58:56 | 只看该作者
如果你想深入学习Linux,看不懂因为文档实在是太难了。写的最好的、最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。
不帅 该用户已被删除
楼主
发表于 2015-1-21 11:14:42 | 只看该作者
在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 23:54

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表