Linux Shell脚本攻略(1.12)

1.12 函数和参数

  • 和其他脚本语言一样,Bash同样支持函数,并且可以传递参数。

1.12.1 函数定义和传参

#!/bin/bash
function fname()       #也可以用fname()代替
{
    echo $1,$2;        #访问参数1和参数2
    echo "$@";         #以列表的方式一次性打印所有参数
    echo "$*";         #类似于$@,但是参数被作为单个实体
    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 参考

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。