首页 > 技术文章 > 7、shell函数

quyong 2017-04-10 11:06 原文

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"
echo ""
echo " where option is one of the following"
echo " p--to print frame files"
echo " u--to save as uppercase"
echo " l--to save as lowercase";}
case $1 in
p | -p)print $@;;
u | -u)upper $@;;
l | -l)lower $@;;
*) usage_error $0;;
esac

推荐阅读