• 函数


      函数可以将一个复杂的功能划分为若干模块,让程序结构更加清晰,代码重复利用率更高。Shell也支持函数。函数是Shell程序中执行特殊过程的部件,并可以在Shell脚本中重复调用。

    1、函数的定义与调用

      Shell函数必须先定义后使用,函数定义的格式如下:

    [function] 函数名()
    {
        命令序列
        [return 返回值]
    }
    

      其中关键字function可以缺省。函数返回值可以是显式增加return语句,如果不加该语句,则会将最后一条命令运行结果作为返回值。

      调用函数只需要给出函数名,不需要加括号,就像一般命令那样使用。函数的调用形式如下:

    形式如下:

    函数名 参数1 参数2 ...参数n
    

      参数是可选的。下面是一个简单的示例

    #!/bin/bash
    #定义函数
    hello () {
    	echo "hello world!"
    	}
    #调用函数
    hello
    

      

     2、函数返回值

      Shell函数返回值只能是整数,一般用来表示函数执行成功与否。如果需要函数返回任意值,如字符串,可以采用以下几种方法。

    1、使用全局变量

      Shell函数并没有提供全局变量,所有函数都与其所在的父脚本共享变量。这样就可以先定义一个变量,用来接收函数的计算结果,脚本在需要的地方访问这个变量来获得函数的返回值。下面给出一个简单的函数返回值示例:

    #!/bin/bash 
    #定义函数 
    hello () { 
    mystr='hello world!' 
    } 
    #调用函数 
    hello 
    #显示函数中赋值的变量 
    echo $mystr

    这个方法可以让函数返回多个值,只需要使用多个全局变量。

    2、在函数中使用标准输出

      将一个Shell函数作为一个子程序调用(命令替换),将返回值写到子程序的标准输出,可以达到返回任意值的目的。下面是相关示例

    #!/bin/bash
    #定义函数
    hello () {
    #将一个值赋值给一个变量作为函数的返回值
    	mystr='hello world!'
    #显示字符串
    	echo $mystr
    	}
    #调用函数
    result=$(hello)
    #显示函数中赋值的变量
    echo $result
    

      

      

    3、在函数中使用return返回整数值

      前面提到的$?是一个特殊的内部变量,可用于获取上一个命令的返回结果,可以直接通过函数return语句来接收返回值。下面为一个相关示例:

    #!/bin/bash
    addnum () {
    	#将两个参数值的和赋给变量
    	val=`expr $1 + $2`
    	#使用return将变量值返回
    	return $val
    	}
    	#调用函数
    	addnum 4 5
    	#获取函数返回值
    	ret=$?
    	echo "两个数的和为:$ret !"
    

      

    3、函数参数

       在Shell中调用函数时可以向其传递参数。与脚本一样,在函数体内不也是通过$n的形式来获取参数的值,例如$1表示第一个参数,$2表示第二个参数,在函数体内部也是通过$n的形式来获取参数的值的,例如,$1表示第一个参数,$2表示第二个参数。

  • 相关阅读:
    Wiggle Sort II
    Coin Change
    MPLS LDP 知识要点
    MPLS Aggreate & Untag
    Lab MPLS隐藏标签显示
    Lab MPLS过滤标签转发
    MPLS MTU Aggregation
    研究MPLS MTU的问题
    Lab 利用MPLS解决BGP路由黑洞
    MPLS 标签保留
  • 原文地址:https://www.cnblogs.com/noticeable/p/8862401.html
Copyright © 2020-2023  润新知