shell脚本介绍_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3582 | 回复: 0   主题: shell脚本介绍        下一篇 
谁是天蝎
注册用户
等级:大元帅
经验:90210
发帖:106
精华:0
注册:2011-7-21
状态:离线
发送短消息息给谁是天蝎 加好友    发送短消息息给谁是天蝎 发消息
发表于: IP:您无权察看 2011-8-2 9:37:04 | [全部帖] [楼主帖] 楼主

一个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。

[root@localhost ~]# cat cleanup.sh
#!/bin/sh
# name: cleanup
# this is a genral cleanup script
echo "starting cleanup...wait"
rm /usr/local/apps/log/*.log
tail -40 /var/adm/messages > /tmp/messages
rm /var/adm/messages
mv /tmp/messages /var/adm/messages
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,

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命令增加其执行权限,这些脚本就可以实际操作了。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论