函数的定义
函数的定义包括function命令、函数名、开/闭括号包括以及包含在一对花括号中的函数体。
(1) 函数定义
function fname()
{
Statements;
}
或者
fname ()
{
Statements;
}
或者
fname() { Statements; }
(2) 使用函数名即可调用函数
$ fname
(3) 含参数的函数调用
$ fname arg1 arg2
以下是函数的访问方法
#!bin/bash
fname()
{
echo $1,$2; #访问参数1和参数2
echo "$@"; #以列表的方式一次性打印参数
echo "$*"; #类似于$@,但所有的参数都被视为单个实体
return 0; #返回值
}
递归函数
递归函数可以调用自身的函数,这种函数必须要有退出条件,否则就会不断的生成自身,知道系统资源耗尽或是崩溃
F() { echo $1;F hello;sleep 1; }
读取命令返回状态
命令的返回值被保存在变量$?中
cmd;
echo $?;
返回的状态称为退出状态。它可用于确定命令执行成功与否。如果成功退出,那么退出状态为0,否则为非0
下面的脚本可以报告命令是否成功结束
#!bin/bash
eval $@
if [ $? -eq 0 ];
then
echo "$CMD executed success"
else
echo "$CMD executed failed"
fi
eval可读取一连串的参数,然后再依参数本身的特性来执行。