Shell脚本学习笔记-函数

来源:互联网 发布:矩阵开关介绍 编辑:程序博客网 时间:2024/06/09 21:24

1.  基本的脚本函数

1.1 函数的定义

function name {        commands}
或者

name() {     commands}

1.2 简单示例

#!/bin/shfunction Func01 {echo "This is function of Func01"}Func02() {echo "This is function of Func02"}Func01Func02
运行结果:


1.3 函数返回值与退出码

#!/bin/shfunction 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 "$?"#运行一个未定义的函数,观察退出码Func04echo "$?"#观察函数自定义的退出码Func03echo "$?"
运行结果:


2. 函数中变量使用

2.1 函数中变量参数处理

#!/bin/shsum(){     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 $valueelse    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 $@   do      result=$[ $result+$var]   done   echo $result}#输出数组的长度echo "输出数组的长度: ${#numberArray[@]}"#输出数组中指定的值echo "输出数组中指定的值:${numberArray[2]}"#修改数组指定的值numberArray[2]=4echo "修改数组指定项后的值:${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 $@   do      result=$[ $result+$var ]   done   echo $result}echo "未定义局部变量的情况"sum ${numberArray[*]}echo "$result"sum(){#使用local关键字将result变量定义为局部变量   local result=0   for var in $@   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:


0 0