多语言展示
当前在线:1207今日阅读:27今日分享:41

shell之 函数(Function)

shell之 函数(Function)    函数在脚本中出现的次序是任意的,会按照脚本调用次序依次执行函数。shell函数通过return返回函数退出状态,0表示无错误,1表示有错误,所以shell函数中的返回值需要使用echo 标准输出或者全局变量1、函数传入参数2、函数通过全局变量返回值3、函数通过echo返回值4、函数相互调用5、一个函数调用多个函数注意:shell中变量所能接收的最大值是由限制的。大概10K左右。
方法/步骤
1

1、函数传入参数[oracle@rhel6 zxx_shell]$ cat 2-function.sh #!/bin/bashfunction show_week(){  local week1=$1   #表示将第一个参数传给本地变量week1  local week2=$2  #表示将第二个参数传给本地变量week2  declare -i total    #表示声明一个整型变量  let total=$week1*$week2  #将变量week1和变量week2的乘积赋值给total  echo 'week1=$week1'  echo 'week2=$week2'  echo 'total=$total' }show_week 3 4   #调用函数,调用时传入参数[oracle@rhel6 zxx_shell]$ ./2-function.sh week1=3week2=4total=12

2

2、函数通过全局变量返回值[oracle@rhel6 zxx_shell]$ cat 2-function.sh #!/bin/bash total=          #全局变量function show_week(){  local week1=$1       #local 表示本地变量  local week2=$2  total=$[$week1*$week2]   #赋值给全局变量 }  num1=3  show_week $num1 '4'  echo '================='$total[oracle@rhel6 zxx_shell]$ ./2-function.sh =================12

3

3、函数通过echo返回值[oracle@rhel6 zxx_shell]$ cat 2-function.sh #!/bin/bashfunction show_week(){  local week1=$1  local week2=$2  let total=$week1*$week2  echo $total   #通过echo标准输出返回函数值 }  num1=3  num2=$(show_week $num1 '4')  #调用函数并将函数返回值赋值给变量  echo '================='$num2[oracle@rhel6 zxx_shell]$ ./2-function.sh =================12

4

4、函数相互调用[oracle@rhel6 zxx_shell]$ cat 2-function.sh #!/bin/bash total=function show_week(){  local week1=$1  local week2=$2  total=$[$week1*$week2] }function getvalue(){  num1=$1  num2=$2  show_week $num1 $num2  #调用show_week函数  echo '=================$total'  #注意调用函数getvalue时,不    #会打印这个,它是作为返回值的}  num3=3  num4=3  var=$(getvalue $num3 $num4)  echo 'var string value is:$var'[oracle@rhel6 zxx_shell]$ ./2-function.sh var string value is:=================9

5

5、一个函数调用多个函数[oracle@rhel6 zxx_shell]$ cat 2-function.sh #!/bin/bashfunction show_week(){  local week1=$1  local week2=$2  total=$[$week1 * $week2]    #传入参数的两个计算乘积,并返回  echo $total }function getvalue(){  date1=`date +%w`  #计算今天周几  echo $date1}function getchushu(){  num1=$1  num2=$2  var1=$(show_week $num1 $num2)  var2=$(getvalue)  var3=$[$var1 / $var2]   #计算两个函数返回值的除数  echo $var3}  num3=5  num4=2  var4=$(getchushu $num3 $num4)  echo 'var4 string value is:$var4'[oracle@rhel6 zxx_shell]$ ./2-function.sh var4 string value is:3

推荐信息