linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。
1.函数定义 可以带 function 关键字使用 function fun_name() 来定义,也可以直接给出函数名 fun_name() 定义。不能带任何参数,函数名必须唯一。函数必须先定义,再调用。
#定义方式一
function_name() {
statements
[return value]
}
#定义方式二
function function_name {
statements
[return value]
}
实例:
#!/bin/bash
#函数定义
function sayHello(){
echo "hello,world!"
}
#函数调用
sayHello
2.函数传参
使用$1,$2,...$n 获取外部传参。
实例:
#!/bin/bash
function add(){
a=$1
b=$2
sum=`expr $a + $b`
echo "sum=$sum"
}
#函数调用
add 12 7
测试运行:
[root@iz2zefozq9h39txdb8s7npz shelldemo]# ./test.sh
sum=19
3.函数返回值 通常使用$?获取函数的返回值。 实例:
#!/bin/bash
function add(){
a=$1
b=$2
sum=`expr $a + $b`
return $sum
}
add 12 7
echo "sum=$?"
但是这种方式获取的返回值不能超过255,否则会出错。 实例:
#!/bin/bash
function add(){
a=$1
b=$2
sum=`expr $a + $b`
return $sum
}
add 102 700
echo "sum=$?"
测试运行:
[root@iz2zefozq9h39txdb8s7npz shelldemo]# ./test.sh
sum=34
在shell中除了()中定义的变量,只要不做任何修饰,都可以理解为是一个全局变量,因此在函数体外可以直接获取返回值。
实例:
#!/bin/bash
function add(){
a=$1
b=$2
sum=`expr $a + $b`
return $sum
}
add 102 700
echo "sum=$sum"
测试运行:
[root@iz2zefozq9h39txdb8s7npz shelldemo]# ./test.sh
sum=802