shell脚本编程体验总结

shell脚本编程体验总结

ID:8800876

大小:76.40 KB

页数:13页

时间:2018-04-08

shell脚本编程体验总结_第1页
shell脚本编程体验总结_第2页
shell脚本编程体验总结_第3页
shell脚本编程体验总结_第4页
shell脚本编程体验总结_第5页
资源描述:

《shell脚本编程体验总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Shell脚本编程体验总结通常,当人们提到“shell脚本语言”时,浮现在他们脑海中是bash,ksh,sh或者其它相类似的linux/unix脚本语言。脚本语言是与计算机交流的另外一种途径。使用图形化窗口界面(不管是windows还是linux都无所谓)用户可以移动鼠标并点击各种对象,比如按钮、列表、选框等等。但这种方式在每次用户想要计算机/服务器完成相同任务时(比如说批量转换照片,或者下载新的电影、mp3等)却是十分不方便。要想让所有这些事情变得简单并且自动化,我们可以使用shell脚本。某些编程语言,像pascal

2、、foxpro、C、java之类,在执行前需要先进行编译。它们需要合适的编译器来让我们的代码完成某个任务。而其它一些编程语言,像php、javascript、visualbasic之类,则不需要编译器,因此它们需要解释器,而我们不需要编译代码就可以运行程序。shell脚本也像解释器一样,但它通常用于调用外部已编译的程序。然后,它会捕获输出结果、退出代码并根据情况进行处理。Linux世界中最为流行的shell脚本语言之一,就是bash。而我认为(这是我自己的看法)原因在于,默认情况下bashshell可以让用户便捷地通过历

3、史命令(先前执行过的)导航,与之相反的是,ksh则要求对.profile进行一些调整,或者记住一些“魔术”组合键来查阅历史并修正命令。好了,我想这些介绍已经足够了,剩下来哪个环境最适合你,就留给你自己去判断吧。从现在开始,我将只讲bash及其脚本。在下面的例子中,我将使用CentOS6.6和bash-4.1.2。请确保你有相同版本,或者更高版本。Shell脚本流shell脚本语言就跟和几个人聊天类似。你只需把所有命令想象成能帮你做事的那些人,只要你用正确的方式来请求他们去做。比如说,你想要写文档。首先,你需要纸。然后,你

4、需要把内容说给某个人听,让他帮你写。最后,你想要把它存放到某个地方。或者说,你想要造一所房子,因而你需要请合适的人来清空场地。在他们说“事情干完了”,那么另外一些工程师就可以帮你来砌墙。最后,当这些工程师们也告诉你“事情干完了”的时候,你就可以叫油漆工来给房子粉饰了。如果你让油漆工在墙砌好前就来粉饰,会发生什么呢?我想,他们会开始发牢骚了。几乎所有这些像人一样的命令都会说话,如果它们完成了工作而没有发生什么问题,那么它们就会告诉“标准输出”。如果它们不能做你叫它们做的事——它们会告诉“标准错误”。这样,最后,所有的命令都

5、通过“标准输入”来听你的话。快速实例——当你打开linux终端并写一些文本时——你正通过“标准输入”和bash说话。那么,让我们来问问bashshellwhoami(我是谁?)吧。root@localhost~]#whoami<---你通过标准输入对bashshell说rootpts/02015-04-2220:17(192.168.1.123)<---bashshell通过标准输出回答你现在,让我们说一些bash听不懂的问题:[root@localhost~]#blablabla<---哈,你又在和标准输入说话了-ba

6、sh:blablabla:commandnotfound<---bash通过标准错误在发牢骚了“:”之前的第一个单词通常是向你发牢骚的命令。实际上,这些流中的每一个都有它们自己的索引号(LCTT译注:文件句柄号):·标准输入(stdin)-0·标准输出(stdout)-1·标准错误(stderr)-2如果你真的想要知道哪个输出命令说了些什么——你需要将那次发言重定向到(在命令后使用大于号“>”和流索引)文件:[root@localhost~]#blablabla1>output.txt-bash:blablabla:co

7、mmandnotfound在本例中,我们试着重定向流1(stdout)到名为output.txt的文件。让我们来看对该文件内容所做的事情吧,使用cat命令可以做这事:[root@localhost~]#catoutput.txt[root@localhost~]#看起来似乎是空的。好吧,现在让我们来重定向流2(stderr):[root@localhost~]#blablabla2>error.txt[root@localhost~]#好吧,我们看到牢骚话没了。让我们检查一下那个文件:[root@localhost~]#

8、caterror.txt-bash:blablabla:commandnotfound[root@localhost~]#果然如此!我们看到,所有牢骚话都被记录到errors.txt文件里头去了。有时候,命令会同时产生stdout和stderr。要重定向它们到不同的文件,我们可以使用以下语句:command1>out

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。