免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 12331 | 回复: 10

[学习共享] shell基础第十六篇-shell脚本介绍 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2010-11-20 12:06 |显示全部楼层
一个s h e l l脚本可以包含一个或多个命令。当然可以不必只为了两个命令就编写一个s h e l l
脚本,一切由用户自己决定。
本章内容有:
• 使用s h e l l脚本的原因。
• shell脚本基本元素。
• shell脚本运行方式。

使用shell脚本的原因
s h e l l脚本在处理自动循环或大的任务方面可节省大量的时间,且功能强大。如果你有处
理一个任务的命令清单,不得不一个一个敲进去,然后观察输出结果,再决定它是否正确,
如果正确,再继续下一个任务,否则再回到清单一步步观察。一个任务可能是将文件分类、
向文件插入文本、迁移文件、从文件中删除行、清除系统过期文件、以及系统一般的管理维
护工作等等。创建一个脚本,在使用一系列系统命令的同时,可以使用变量、条件、算术和
循环快速创建脚本以完成相应工作。这比在命令行下一个个敲入要节省大量的工作时间。
s h e l l脚本可以在行命令中接收信息,并使用它作为另一个命令的输入。
对于不同的U N I X和L I N U X,使用一段s h e l l脚本将需要一些小小的改动才能运行通过。实
际上s h e l l的可迁移性不成问题,但是系统间命令的可迁移性存在差别。

试试新思路
如果写一段脚本,其执行结果与预想的不同,不必着急。无论多不可思议的结果,记住
先把它保存起来,这是修改的基础。这里要说的意思是不要害怕对待新事物,否则将不能树
立信心,学起来会更加困难。


脚本内容
本章不讲怎样设计精巧的脚本,而是怎样使脚本重复利用率高。当通过一些易理解的脚
本就可实现同样功能时,没有必要使脚本复杂化。如果作者要写这样一本书,可能会给你留
下深刻印象,但这要花费更多的时间和精力去研读和体会脚本。这不是本书的目标。本书脚
本流程仅使用基本的脚本技术,十分容易学,然后使用者就可以着手实践了。
脚本不是复杂的程序,它是按行解释的。脚本第一行总是以# ! / b i n / s h开始,这段脚本通知
s h e l l使用系统上的Bourne shell解释器。现在的Linux一般是以bash进行解释。
任何脚本都可能有注释,加注释需要此行的第一个字符为#,解释器对此行不予解释。在第二行注释中写入脚本名是一个好习惯。
脚本从上到下执行,运行脚本前需要增加其执行权限。确保正确建立脚本路径,这样只
用文件名就可以运行它了。

运行一段脚本
下面是一个已经讨论过的例子,此文件为c l e a n u p。
  1. [root@localhost ~]# cat cleanup.sh
  2. #!/bin/sh
  3. # name: cleanup
  4. # this is a genral cleanup script
  5. echo "starting cleanup...wait"
  6. rm /usr/local/apps/log/*.log
  7. tail -40 /var/adm/messages > /tmp/messages
  8. rm /var/adm/messages
  9. mv /tmp/messages /var/adm/messages
  10. echo "finished cleanup"
复制代码
上述脚本通过将目录下文件名截断,清除/ u s r / a d m /下信息,并删除/ u s r / l o c a l / a p p s / l o g下所
有注册信息。
可以使用c h m o d命令增加脚本执行权限。
$ chmod u+x cleanup
现在运行脚本,只敲入文件名即可。
$ cleanup.sh
如果返回错误信息:
[root@localhost ~]# cleanup.sh
-bash: cleanup.sh: command not found
再试:
$. /cleanup.sh
如果脚本运行前必须键入路径名,或者s h e l l结果通知无法找到命令,就需要在. p r o f i l e,
在Linux中我们通常修改的是~/.bashrc文件

PAT H下加入用户可执行程序目录。要确保用户在自己的$ H O M E可执行程序目录下,应键入:
$ pwd
$ /home/dave/bin
如果p w d命令最后一部分是b i n,那么需要在路径中加入此信息。编辑用户. p r o f i l e文件,
加入可执行程序目录$ H O M E / b i n如下:
P A T H = $ P A T H : $ H O M E / b i n
如果没有b i n目录,就创建它。首先确保在用户根目录下。
$ cd $HOME
$ mkdir bin
现在可以在. p r o f i l e文件中将b i n目录加入PAT H变量了,然后重新初始化. p r o f i l e。
$. ./profile
$source ./profile
$. ./bashrc
$source ./bashrc
脚本将会正常运行。
如果还有问题,见第2章和第1 3章,那里详细介绍了如何解决这一问题。
全书有许多脚本清单,这些脚本都是完整的。将这些脚本输入文件,保存并退出,再使
用c h m o d命令增加其执行权限,这些脚本就可以实际操作了。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2010-11-20 12:07 |显示全部楼层
小结
本章介绍了s h e l l脚本的基本原理,相信关于脚本的功能原理这些已经足够了,读本章时
可加快速度。本章目标只是要用户知道运行s h e l l脚本需要做些什么。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2010-11-20 12:07 |显示全部楼层
END
shell基础第十六篇-shell脚本介绍
本章介绍完毕~~

论坛徽章:
0
发表于 2010-11-20 12:13 |显示全部楼层
楼主辛苦啦

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2010-11-20 13:02 |显示全部楼层
楼主辛苦啦
dibug 发表于 2010-11-20 12:13



    还好,还好的~~,谢谢关注~~

论坛徽章:
0
发表于 2010-11-20 16:47 |显示全部楼层
GNU grep

论坛徽章:
0
发表于 2012-08-19 13:12 |显示全部楼层
辛苦了

论坛徽章:
0
发表于 2013-04-13 22:29 |显示全部楼层
收藏了,非常好看

论坛徽章:
2
水瓶座
日期:2014-02-28 14:20:09辰龙
日期:2014-06-16 13:18:51
发表于 2014-02-20 18:16 |显示全部楼层
阅读完毕,雁过留痕

论坛徽章:
1
狮子座
日期:2014-08-08 13:42:18
发表于 2014-07-23 14:33 |显示全部楼层
mark
:wink:
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时七折期:2019年8月31日前


----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP