热点网|医学教育网|北京pk10开奖直播 pk10开奖直播 北京赛车pk10 pk10开奖直播 北京赛车pk10 PK10开奖直播 北京赛车pk10开奖直播 北京pk10 北京pk10
网站运营 | 站长学院 | 技术文档 | 成语 | 歇后语 | 桌面壁纸 | 帝国时代 | 代码收藏 | IP地址查询 | 生活百科 | 生日密码 | CSS压缩 | 用户评论

Shell编程的10个最佳实践

【 更新时间:2013-10-06 | 字体:
[导读]每一个在UNIX/Linux上工作的程序员可能都擅长shell脚本编程>。 但大家解决问题的方式却不尽相同>,这要取决于对专业知识的掌握程度>、使用命令的种类<、看待问题的方式等等。对于那些处在shell脚本编程初级阶段的程序员来...
       每一个在UNIX/Linux上工作的程序员可能都擅长shell脚本编程。 但大家解决问题的方式却不尽相同,这要取决于对专业知识的掌握程度、使用命令的种类、看待问题的方式等等。对于那些处在shell脚本编程初级阶段的程序员来说,遵循一些恰当的做法可以帮助你更快>、更好的学习这些编程技巧>。下面,我们就来讨论这些能帮助你学习shell脚本编程的方法吧。


1<、多动手
       一些人会先通读整本教材后再上机练习。这种方法可能适用于一些人,但我却不太看好它。我的建议是,先学一些最基础的,能够让你开始编码的知识就可以了。之后,动手写一些简单的程序。一旦你由于知识上的欠缺而不得不停止时,再回到书本上去读你想要了解的那部分,然后继续做你的项目。如此周而复始,不断提高你的水平。这种边学边做的方法曾让我受益良多。


2<<、善用命令提示符

       有时候,我们写的脚本中有一些错误。我们修改错误,运行脚本,但系统再次报错。并且这个改错报错的过程可能会发生很多次。碰到这些情况,首先需要找到有问题的行或命令,这可以通过一些调试语句来轻松做到。一旦发现这条语句,尝试在命令提示符下执行相同的语句<。如果它在命令提示符下开始正常运行,你就可以容易的推断出它不能正常运行的原因了??赡苁怯捎谀承┐砦笫淙氲拿?<,或者是某些环境变量不匹配<,或者是从不同的地方引用了某个二进制文件等等<。这种方法会让调试变得简单易行。

3、考虑问题要全面

       现在我们来看个问题。你想到了关于某个问题的解决方案,但这个解决方案只适用于处理小型文件<?>?墒堑贝肀冉洗蟮奈募?,你该怎么办>?举个例子,我们想要得到一个文件的第一行内容:

sed -n '1p' file

       这条语句当然会给出你想要的第一行内容>??墒侨绻淼奈募习偻蛱跫锹寄??尽管上面的那条sed命令可以输出文件的第一行内容,但是想要处理大型文件一定会带来性能上的问题。

解决办法:

sed -n '1p;1q' file

这条命令将只输出第一行<<,同时退出程序。


4、经常尝试不同的方法
       你在写脚本时碰到一个问题,然后你找到了一种独特的解决方法<。下一次你偶然又碰到类似的问题><,这时,不要再用以前你用过的方法来解决。试试另外一种方法吧>。如果某一天再次遇到这种情况<,再试试其它方法。
例如:


if [ $? -eq 0 ]
then
echo "Success"
fi
另一种方法:


[ $? -eq 0 ] && echo "Success"
       现在你可能会明白这个博客里会有那么多以“……的不同解决方法”为题的文章了吧<。所有这些文章的目的都是用来帮助订阅这个博客的开发者开阔视野,打开思路。


5<、快速编码
       脚本可以节省我们的时间<,提高生产力>?我们想写一个脚本,于是打开一个文件,写下代码,保存文件, 之后运行脚本,系统报错,我们再打开文件修改、保存、运行……在这个过程中会花费很多时间。在此前的一篇题为《SHELL编程指导》的文章里,你可以学会如何编写脚本和测试正在运行中的脚本>,而不用再回顾命令提示符。这些方法可以加快编码的速度。当我写脚本的时候<,我总是使用这些方法<。而且我可以很肯定的说,它们帮我节约了不少时间。


6、经常使用内部命令
       无论碰到哪种情况><,请尽量考虑使用内部命令而不是外部命令。用内部命令对你永远都有好处。根据正在处理的输入文件的大小<,内部命令可以在性能方面为你节省很多。虽然你并不总是有这样选择内部命令抑或外部命令的机会<,但在某些情况下<,你一定能做出正确的选择。


7、没有必要使用cat命令
       这是我们经常在论坛里讨论的话题之一。没有必要使用cat命令指的是在有些时候>,我们会发现根本没有必要使用cat命令>。有时候,使用了多余的cat命令会让你的代码看起来很丑陋,而且还会带来性能上的问题><。
例如:


$ cat /etc/passwd | grep guru
正确的方法应该是:


$ grep guru /etc/passwd
8、仔细阅读错误信息
       程序员常犯的一个错误是:当我们敲入的命令报错后,我们中的大多数人只是对错误信息一瞥而过,而不会去认真的读一读。很多时候,错误信息里就包含了解决办法。更重要的是,有时候我们修改了某个错误并再次运行后,系统依旧会报错。然后我们再次修改,但系统再次报错。这可能会持续很长时间。但实际上,旧的错误可能已经被纠正,只是由于出现了其它一些新错误才导致系统再次报错。而我们依旧在怀疑为什么修改好的代码依然不能正常运行>。因此,请你养成仔细阅读错误信息的习惯<。


9、尽量避免臃肿的命令
       你正在尝试去从一个大的文件中筛选某条信息。接下来你可能写一大堆命令来实现这一功能>??墒?>,尽管你将得到正确的结果,你写的命令却不够好>>,且晦涩难懂。因此,我们应该尽量避免这种情况发生。下面这个例子就是代码优化的好例子。
例如:检索用户ID值为502的用户名。
下面的命令不好:


$ grep 502 /etc/passwd | cut -d: -f1
这条命令也不够好:


$ grep 502 /etc/passwd | awk -F ":" '{print $1}'
这才是一条好的命令:


$ awk -F ":" '$3==502{print $1}' /etc/passwd
正如以上示例<<,用一条简单的awk命令就可以完成检索任务。


10、别吝啬添加注释
       写了一份脚本>,一两个星期后,你再次打开脚本文件<,如果没有注释在里面的话,你可能会花上很多时间才能理解这些代码。虽然代码是我们自己写的,但这依旧会浪费我们很多的时间。脚本是用来节省时间的,因此,我们没有理由浪费时间去理解这些用来节省时间的文件。所以,请养成在脚本中添加注释的好习惯<。 这些注释不必很详细,能让自己或别人读懂就行。
友荐云推荐
  • 转载请注明来源:网站运营 网址:http://www.chinawobo.com/ 向您的朋友推荐此文章
  • 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者<。文章版权归文章原始作者所有<。对于被本站转载文章的个人和网站>,我们表示深深的谢意。如果本站转载的文章有版权问题请联系我们,我们会尽快予以更正。
RSS订阅
  • QQ邮箱
  • 填写您的邮件地址,订阅我们的精彩内容:
更多
© 2014 网站运营 - T086.com(原itlearner.com)
  • 2018的偶像元年是否只是一场美丽的谎言?偶像练习生创造101选秀 2018-05-22
  • 上海临港有个“儿童大学” 2018-05-20
  • 2017年世界大学学术排名发布 清华进前50大学学术排名大学排行榜 2018-05-20
  • 日本战犯侵华罪行自供 2018-05-19
  • 塑料污染让人痛心 世界最深海沟竟成“垃圾场” 2018-05-19
  • 男子因琐事杀害女友并分尸抛河 警方根据美甲破案嘉兴美甲死者 2018-05-18
  • 166名中国人在泰国操控中国股市被警方押扣审讯 2018-05-17
  • 消防车进商场——“小小消防员”的消防安全乐体验 2018-05-17
  • 学者:“感应舍利”的出现为何是“必然” 2018-05-16
  • 中国等国利用可再生能源创造上千万工作岗位 2018-05-16
  • 只有用在外语环境下学习的人才懂的13个瞬间! 2018-05-16
  • 外交部回应“中国首次在南沙群岛部署导弹系统” 2018-05-15
  • 陕甘宁边区发行的光华劵:为找零需要,增发6种辅币 2018-05-14
  • 酒仙网郝鸿峰:白酒轻奢消费正在互联网上兴起兴起 2018-05-14
  • 新增硕博学位授予单位释放了什么信号 2018-05-14
  • 微商货源 | 冠珠陶瓷 | 6688电视家官网 | 中康体检网 | 安徽极热网 | 北京赛车开奖号码 | 快猴网 | 迪威乐云商devmsn | 易奇八字 | wwe美国职业摔角 | 八字算命 | 河南旅游景点大全 | 冠珠陶瓷 | 广东旅游景点大全 |
    RunTime:6.82ms QueryTime:7