分享
 
 
 

Shell编程学习笔记(1)

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

Shell编程学习笔记(1)

作者: Badcoffee

Email: blog.oliver@gmail.com

2004年11月

原文出处: http://blog.csdn.net/yayong

版权所有: 转载时请务必以超链接形式标明文章原始出处、作者信息及本声明

虽然在UNIX/LIUNX平台上做了将近5年的软件工程师。

但是还是得很惭愧的说,我不熟悉shell, 只是粗略了解个大概而已。

以前,工作中遇到问题,要么去忍受,要么就绕道儿走,用C语言来解决问题

可是现在,则是不得不学习shell编程了。

经验告诉我们,最好的学习方法是边干边学。

所以,我就在没有系统学习shell语法的情况下,就开始写shell程序了。

学习一种语言去解决实际问题,还是相当容易的。

写shell的过程中,触及到的某些知识点,再回头看书了解一下,往往事半功倍。

调试

调试的技巧是很重要的。开始写一种语言程序之前,最先了解的就应该是调试技巧:

shell中几个常用的调试参数是:

-e:如果一个命令失败就立即退出

-n:读入命令但是不执行它们

-u:置换时把未设置的变量看作出错

-v:当读入shell输入行时把它们显示出来

-x:执行命令时把命令和它们的参数显示出来

上面的所有参数都可以有3种方式来使用,下面将以ksh为例:

1. 命令行方式

使用命令行调用shell的方法省却了修改shell源程序的步骤:

# ksh -xv <文件名>

如果调试跟踪的输出有点冗长,为方便察看,可以利用重定向把Debug信息定向到文件里:

# ksh -xv <文件名> 2>debug.log

2. set 语句

可以在shell程序内部用“set -参数”语句打开相关参数,而“set +参数”则将禁止该参数起作用。

如果只想对程序的某一部分使用调式参数调试时,则可以将该部分用上面两个语句包围起来。

set -xv

.......

想调试的语句...

.......

set +xv

3. 解释器参数

可以在源文件的头部的解释器声明处设置相关的调试参数:

#!/bin/ksh -xv

调试参数用法举例:

1.未置变量退出和立即退出

未置变量退出特性允许用户对所有变量进行检查,如果引用了一个未赋值的变量就终止shell程序的执行。shell通常允许未置变量的使用,在这种情况下,变量的值为空。如果设置了未置变量退出选择项,则一旦使用了未置变量就显示错误信息,并终止程序的运行。未置变量退出选择项为“-u”。

当shell运行时,若遇到不存在或不可执行的命令、重定向失败或命令非正常结束等情况时,如果未经重新定向,该出错信息会打印在终端屏幕上,而shell程序仍将继续执行。要想在错误发生时迫使shell程序立即结束,可以使用“-e”选项将shell程序的执行立即终止。

2.shell程序的跟踪

调试shell程序的主要方法是利用shell命令解释程序的“-v”或“-x”选项来跟踪程序的执行。“-v”选择项使shell在执行程序的过程中,把它读入的每一个命令行都显示出来,而“-x”选择项使shell在执行程序的过程中把它执行的每一个命令在行首用一个“+”加上命令名显示出来。并把每一个变量和该变量所取的值也显示出来,因此,它们的主要区别在于:在执行命令行之前无“-v”则打印出命令行的原始内容,而有“-v”则打印出经过替换后的命令行的内容。

除了使用shell的“-v”和“-x”选择项以外,还可以在shell程序内部采取一些辅助调试的措施。例如,可以在shell程序的一些关键地方使用echo命令把必要的信息显示出来,它的作用相当于C语言中的printf语句,这样就可以知道程序运行到什么地方及程序目前的状态。

学习完调试技巧后,就可以自如的调试自己写的源程序了;当然,学会调试,更重要的就是可以利用它来学习理解别人写的源代码了。

如果看不懂别人写的代码,打开调试功能是也许是最好的选择。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有