胸口拉扯痛:shell入门基础(6)

来源:百度文库 编辑:偶看新闻 时间:2024/05/04 22:38:29

(5)select语句

select语句是pdksh提供的一个独特的循环语句.他不同于前面介绍的循环语句.他不是

反复计算一个条件表达式,并依据表达式的值决定是否执行一组命令.select的功能是自动的

生成一个简单的文本菜单.

语法格式:

select menu [in list_of_items]
do
commands
done

含义:当执行一个select语句时,pdksh分别为每个列在list_of_items中的成员建立一个菜单

选项.list_of_items既可以是一个包含多个选项的变量,也可以是直接列在程序中的一组选项

.如果语句中没有提供list_of_items,select语句将使用位置变量作为list_of_items.

举例:

select menuitem in pick1 pick2 pick3
do
echo "are you sure you want to pick $menuitem"
read res          ;接收用户的输入,并且将输入的值存放在特定变量里.
if [ $res=" y" -o $res=" Y"]
then
break           ;用于退出while,for,select等循环语句
fi
done

(6)repeat语句

repeat语句是tcsh提供的独有的循环语句.使用repeat命令要求shell对一个命令执行一定

的次数.

语法格式:

repeat count command

如;

foreach num ( $ *)
repeat $num echo -n " *"
echo " "
end

7.shell中的函数

shell允许用户定义自己的函数.函数是高级语言中的重要结构.shell中的函数于C或者其他

语言中定义的函数一样.与从头开始,一行一行地写程序相比,使用函数主要好处是有利于组织

整个程序.在bash中,一个函数的语法格式如下:

fname (){
shell comands
}

定义好函数后,需要在程序中调用他们.bash中调用函数的格式:

fname [parm1 parm2 parm3...]

调用函数时,可以向函数传递任意多个参数.函数将这些参数看做是存放他的命令行参数的

位置变量.

举例:

这个程序定义了4个函数:

upper ():将传递给他的文件中的字母转换成大写,并存放到同名的结尾为.out的文件中.

lower ():将传递给他的文件里的字母转换成小写,并存放到同名的结尾为.out的文件中.

print ():输出传递给他的文件的内容.

usage_error ():输出程序的帮助信息.

程序的主模块是个case条件语句,他根据命令行中第一个参数,决定程序要完成的功能,并调用相应

的函数完成这一功能.

upper (){
shift
for i
do
tr a-a A-Z<$!>$1.out
rm $1
mv $1.out $1
shift
done; }
lower () {
shift
for i
do
tr A-Z a-z<$1>$1.out
rm $1
mv $1.out $1
shift
done; }
print() {
shift
for i
do
lpr $1
shift
done; }
usage_error() {
echo " $1 syntax is $1