在shel脚本中可以定文并使用函数,其定义格式如下,
[function] 函数名()
{
命令表
}
其中,关键字funetion可以默认。例如:
showfile( )
{
1f[~d“$1"]
then cd “$1”
cat m*.c | pr
else echo“$1 is not a directory."
fi
echo “End ofthe function.”
}
函数应“先定义,后使用”。调用函数时,直接利用函数名,如showfile,不必带“()”,就像一般命令那样 使用shell脚本与函数间的参数传递可利用位置参数和变量直接传递,变量的值可以由shell脚本传递给被调用的函数,而函数中所用的位置参数S1、S2等对应函数调用语句中的实参,这与普通命令不同。例如,在“showfile /home mengqc”中 ,其实参/home/mengqc是函数showfile中$1的值。
函数应用示例。
$ cat ex17
#func is a function name
#it echos the values 。variables and arguments
func()
{
echo "Let’s begin now.echo
$a $b $c
echo
$1 $2 $3
echo
}
“The end.”
a=“Working directory”
b=“is”
c= pwd
func Welcome You Byby
echo"Today is’date’ ”
$ ex17
Let’s begin now.
Working directory is /home/ mengqc
Welcome You Byby
The end.
shell中的函数把若干命令集合在一起, 通过一个函数名加以调用。 如果需要,还可名次调用。执行函数并不创建新的进程,而是通过shell进程执行。
通常,函数中的最后一个命令执行后,就退出被调函数。也可利用return命令立即退出函数,其语法格式如下:
return [ n ]
其中,n是退出函数时的退出值(退出状态), 即$?的值。当n值默认时,则退出值是最后一个命令执行后的退出值。