1.12 函数和参数
- 和其他脚本语言一样,Bash同样支持函数,并且可以传递参数。
1.12.1 函数定义和传参
#!/bin/bash
function fname() #也可以用fname()代替
{
echo $1,$2; #访问参数1和参数2
echo "[email protected]"; #以列表的方式一次性打印所有参数
echo "$*"; #类似于[email protected],但是参数被作为单个实体
return 0; #返回值
}
fname $1 $2 #执行函数并传递参数
- $1是第一个参数;$2是第二个参数;$n是第n个参数;$@被扩展成“$1”“$2”“$3”;$*被扩展成“1c2c$3”,其中c是IFS的第一个字符。
1.12.2 递归函数
- 在Bash中,函数同样支持递归函数.
F()
{
echo $1;
F hello;
sleep 1;
}
1.12.3 读取命令返回值
- 返回值被称为推出状态,它可以用于分析命令执行成功与否。如果命令成功退出,那么退出状态为0,否则为非0.
#!/bin/bash
CMD="echo test" #CMD为要执行的命令
$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 参考
时间: 2024-12-04 14:00:17