Shell 函数

449 阅读1分钟

Shell 函数

Linux Shell可以用户定义函数,然后在shell脚本中可以随便调用。 Shell中函数定义格式如下:

[function] funname [()]
{
    action;
    [return int;]
}
说明:
可以带function fun()定义,也可以直接fun()定义,不带任何参数
参数返回,可以显示加:return,如果不加,将以最后一条命令运行结果,作为返回值,return后跟数值n(0~255)
  1. 实例
  • 定义一个函数并进行调用
#!/bin/bash
function demoFun(){
	echo "第一个shell函数"
}
demoFun # 调用函数

输出结果:

第一个shell函数

  • 定义一个带有return语句的函数
#!/bin/bash
function demoFun(){
	a=10
	b=20
	return $(($a+$b))
}
demoFun
echo "$?"

输出结果:

30

函数返回值在调用该函数后通过$?来获取

函数参数

在shell中,调用函数时可以向其传递参数。在函数体内部,通过$n的形式来获取参数的值,例如,$1表示比一个参数、$2表示第二个参数...

  1. 实例
  • 带参数的函数
#!/bin/bash
getMax(){
	echo "获取第1个参数:$1"
	echo "获取第2个参数:$2"
	echo "获取第3个参数:$3"
	echo "获取第4个参数:$4"
	echo "获取第5个参数:$5"
	echo "获取第6个参数:$6"
	echo "获取第7个参数:$7"
	echo "获取第8个参数:$4"
	echo "获取第9个参数:$9"
	echo "获取第10个参数:${10}" #当n>=10时,需要使用${n}来获取参数
	echo "$*"	#$*作字符串输入出所有参数
	temp=$1
	for i in $*
	do
		if [ $i -gt $temp ]
		then
		 	temp=$i
		fi
	done

	return $temp	#函数返回值在调用该函数后,通过$?获取
}

getMax 1 22 333 4 55 6 7 8 9 100
echo $temp

执行结果:

获取第1个参数:1
获取第2个参数:22
获取第3个参数:333
获取第4个参数:4
获取第5个参数:55
获取第6个参数:6
获取第7个参数:7
获取第8个参数:4
获取第9个参数:9
获取第10个参数:100
1 22 333 4 55 6 7 8 9 100
333

注意,$10不能获取第十个参数,获取第十个参数需要${10}。当n>=10时,需要使用${n}来获取参数