1.12 函数和参数
- 和其他脚本语言一样,Bash同样支持函数,并且可以传递参数。
1.12.1 函数定义和传参
#!/bin/bash
function fname()
{
echo $1,$2;
echo "$@";
echo "$*";
return 0;
}
fname $1 $2
- $1是第一个参数;$2是第二个参数;$n是第n个参数;$@被扩展成“$1”“$2”“$3”;$*被扩展成“
1c
2c$3”,其中c是IFS的第一个字符。
1.12.2 递归函数
F()
{
echo $1;
F hello;
sleep 1;
}
1.12.3 读取命令返回值
- 返回值被称为推出状态,它可以用于分析命令执行成功与否。如果命令成功退出,那么退出状态为0,否则为非0.
#!/bin/bash
CMD="echo test"
$CMD
if [ $? -eq 0 ]
then
echo "$CMD executed successfully"
else
echo "$CMD executed unsuccessfully"
fi
1.12.4 向命令传递参数
- Bash中的命令通常都有多个参数,命令的参数能够以不同的格式进行传递。假设-p,-v是可用选项,-k N是另一个可以接受的参数,同时还可以接受一个文件名作为参数,那么一下几种方式是等价的:
command -p -v -k 1 file
command -pv -k 1 file
command -vpk 1 file
command -file -pvk 1 #k N应该紧邻
1.12.5 参考