红联Linux门户
Linux帮助

FreeBSD Shell脚本

发布时间:2006-02-20 00:36:37来源:红联作者:WWW
从上面的例子中可以看出, sh具备基本的控制能力,能够处理简单的任务。这样就可以简单的将所需要的操作集中起来,放在同一个文件之内,就组成了一个脚本,而这个脚本就可以当作一个可执行的程序直接执行,这样就可以方便日常的操作和维护。
引用:
$ 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代表第一个参数,等等。
引用:
$ 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来完成。
引用:
$ 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等高级脚本语言更为有效。
文章评论

共有 0 条评论