您当前的位置:linuxsea -> unix

FreeBSD Shell脚本
作者:linuxsea  来源:linux海洋  发布时间:2006-10-21 19:48:31  发布人:admin

减小字体 增大字体

从上面的例子中可以看出, sh具备基本的控制能力,能够处理简单的任务。这样就可以简单的将所需要的操作集中起来,放在同一个文件之内,就组成了一个脚本,而这个脚本就可以当作一个可执行的程序直接执行,这样就可以方便日常的操作和维护。
QUOTE:
$ cat > test.sh

for COUNT1 in 0 1 2 3 4 5 6 7 8 9

do

for COUNT2 in 0 1 2 3 4 5 6 7 8 9

do

echo “ count is $COUNT1$COUNT2 ”

done

done
^D

$ sh test.sh

执行脚本程序的最直接方式是如同上面的例子中,将脚本文件作为 sh的一个参数来启动。然而,更完善的方式是直接执行脚本本身,这就需要在脚本的第一行加上 ” #! /bin/sh ” 指出解释这个脚本的程序为 sh,然后为该文件增加执行属性,那么该脚本程序就可以独立执行了。

$ head -1 test.sh

#! /bin/sh

$ chmod +x test.sh

$ ./test.sh

当把所需要的操作抽象到脚本程序中之后,通常就意味着这个程序可能多次运行,这也就意味着,这个程序需要处理一些输入工作。第一种将数据输入到脚本程序的方法是使用程序参数, sh将使用内部变量$#代表参数的数量,$*代表所有的参数字符串,而$1代表第一个参数,等等。
QUOTE:
$ cat testparam.sh

#! /bin/sh

echo “ param number is $# ”

echo “ params is: $* ”

echo “ param 1 is : $1 ”

$ ./test.sh param1 param2 “ this is param3 ”

如果参数中间包含空白字符,那么可以使用引号将它引起来,表示是一个参数。

第二种将数据输入到程序中的方法是让程序自身去读取输入,这可以通过 read来完成。
QUOTE:
$ cat testinput.sh

#! /bin/sh

read -p “ please input: ” inputvar

echo “ you key in: $inputvar ”

read -p “ please input 2 words at least: ” inputvar1 inputvar2

echo “ you key in word1: $inputvar1 ”

echo “ last is word2: $inputvar2 ”

$ ./test.sh

read使用 ” -p ” 作为输入提示,将用户输入的整行内容赋给相应的变量,如果要求输入多个变量, read会按照分隔符的要求,将第一个单词赋给第一个变量,其他部分赋给第二个变量。
可以注意到,这里的变量并没有使用 export指令,事实上一个变量可以直接使用,当它的有效范围有限,只是一个局部变量,只在这个脚本内部,或者在命令行的一行命令中内部有效,不能影响这个脚本启动的其他外部程序。

Shell脚本本身是比较简单的,但它在很多情况下十分有效,特别是对于执行日常经常执行的维护操作,它的能力来源于Unix下命令的灵活组合能力,这就是Unix设计的主要思路之一,因此对于Unix用户来讲,掌握shell脚本是非常有用的。参考系统的rc启动脚本,能够学习到更多的脚本编程技巧,这些技巧能够大大提高日常工作的效率。

简单的 shell脚本掌握起来非常简单,但如果使用它来实现一些高级功能,shell脚本的处理能力有时候就不够了,这些时候,例如 awk、perl、python等高级脚本语言更为有效。
[] [返回上一页] [打 印] [收 藏]
上一篇文章:SCO UNIX作业调度
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论…]
· 入门提高
· 开发区
· 网络与应用
· unix
· 新闻与认证

相关文章

· FREE BSD的一些小技巧
· [组图] 初学者入门:FreeBSD服务器的安装..
· FreeBSD 升级和优化全攻略
· 茅塞顿开:给FREEBSD新手的一些建议
· FreeBSD Shell的高级功能
· FreeBSD下的vi支持中文显示和编辑
· FreeBSD系统优化部分内核参数调整中文注..
· FreeBSD的基本系统下Shell设置
· [图文] FreeBSD安装之自动分区
· FreeBSD的启动信息参考
· FreeBSD下安装GNOME桌面
· 察看FreeBSD日志信息
· FreeBSD 中使用QUOTA(磁盘配额)来限制用..
· FreeBSD 分区知识学习及实验备忘录
· [图文] 在FreeBSD上查看邮件



© 2006-2008 Linuxsea.net, all rights reserved