Linux shell可以用户定义函数,然后再shell脚本中可以随便调用
shell中函数的定义格式如下:
[function] funname[()]
{
action
[return int;]
}
说明 : 可以带function fun()定义,也可以直接fun()定义,不带任何参数
参数可以返回,可以显示加:return,如果不加,将以最后一条命令运行结果,作为返回值 return后跟数值n(0-255)
#!/bin/sh
demoFun(){
echo "这是第一个shell函数"
}
echo "-----函数开始执行------"
demoFun
echo"---------函数执行完毕---------"
2 函数参数
在shell中,调用函数时可以向其传递参数.在函数体内部,通过$n的形式来获取参数的值,例如.$1 表示第一个参数,
#!/bin/bash # author:菜鸟教程 # url:www.runoob.com funWithParam(){ echo "第一个参数为 $1 !" echo "第二个参数为 $2 !" echo "第十个参数为 $10 !" echo "第十个参数为 ${10} !" echo "第十一个参数为 ${11} !" echo "参数总数有 $# 个!" echo "作为一个字符串输出所有参数 $* !" } funWithParam 1 2 3 4 5 6 7 8 9 34 73
输出结果
第一个参数为 1 ! 第二个参数为 2 ! 第十个参数为 10 ! 第十个参数为 34 ! 第十一个参数为 73 ! 参数总数有 11 个! 作为一个字符串输出所有参数 1 2 3 4 5 6 7 8 9 34 73 !
注意,$10不能获取第十个参数,获取第十个参数需要%{10}.当n>=10时,需要使用${n}来获取参数
注:$?也可以用来获取上衣步骤的输出结果值
#!/bin/bash function demoFun1(){ echo "这是我的第一个 shell 函数!" return `expr 1 + 1` } demoFun1 echo $? function demoFun2(){ echo "这是我的第二个 shell 函数!" expr 1 + 1 } demoFun2 echo $? demoFun1 echo 在这里插入命令! echo $?
输出结果:
这是我的第一个 shell 函数! 2 这是我的第二个 shell 函数! 2 0 这是我的第一个 shell 函数! 在这里插入命令! 0
但是要注意$?可能输出的只是输出结果是否正确
如
#!/bin/bash function demoFun1(){ echo "这是我的第一个 shell 函数!" return `expr 1 + 1` } demoFun1 echo $? echo $?
输出结果:
这是我的第一个 shell 函数! 2 0