1. 基本的脚本函数
1.1 函数的定义
function name { commands }
或者
name() { commands }
1.2 简单示例
#!/bin/sh function Func01 { echo "This is function of Func01" } Func02() { echo "This is function of Func02" } Func01 Func02
运行结果:
1.3 函数返回值与退出码
#!/bin/sh function Func01 { echo "This is function of Func01" } Func02() { echo "This is function of Func02" } Func03(){ echo "This is function of Func02" #自定义退出码,退出码需限制在0-255之间 return 10 } Func01 #输出函数运行的退出码,0表示成功 echo "$?" #运行一个未定义的函数,观察退出码 Func04 echo "$?" #观察函数自定义的退出码 Func03 echo "$?"
运行结果:
2. 函数中变量使用
2.1 函数中变量参数处理
#!/bin/sh sum(){ if [ $# -eq 2 ] then sum=$[ $1+$2 ] echo $sum else echo "please input 2 args" return 1 fi } value=`sum $1 $2` if [ $? -eq 0 ] then echo $value else echo "Err $value" fi
运行结果:
2.2 函数中使用数组参数
#!/bin/sh #定义一个数组 numberArray=(1 2 3 4 5 6 7 8 9 10) #定义一个求和函数 sum(){ result=0 for var in [email protected] do result=$[ $result+$var] done echo $result } #输出数组的长度 echo "输出数组的长度: ${#numberArray[@]}" #输出数组中指定的值 echo "输出数组中指定的值:${numberArray[2]}" #修改数组指定的值 numberArray[2]=4 echo "修改数组指定项后的值:${numberArray[2]}" #调用函数,使用数组变量 echo "调用函数,使用数组变量: `sum ${numberArray[*]}`"
运行结果:
2.3 通过local关键字定义函数中的局部变量
#!/bin/sh #定义一个数组 numberArray=(1 2 3 4 5 6 7 8 9 10) #定义一个求和函数 sum(){ #未定义局部变量的情况 result=0 for var in [email protected] do result=$[ $result+$var ] done echo $result } echo "未定义局部变量的情况" sum ${numberArray[*]} echo "$result" sum(){ #使用local关键字将result变量定义为局部变量 local result=0 for var in [email protected] do result=$[ $result+$var] done echo $result } echo "使用了local关键字定义局部变量的情况" sum ${numberArray[*]} echo "$result"
运行结果:
3. 引用函数库
3.1 通过source filepath命令在脚本中引用其他其他脚本的函数库, source filepath也可简写为“. filepath”的形式
3.2 简单示例,编写两个shell脚本,在newshell.sh脚本中引用shellscript的函数,e.g:
时间: 2024-10-16 10:18:32