• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    浅谈Shell中的函数

    函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高。像其他编程语言一样,Shell也支持函数。Shell函数必须先定义后使用。

    1.Shell函数的定义格式

    可以带function关键字使用function fun_name()来定义,也可以直接给出函数名fun_name()定义。不能带任何参数,函数名必须唯一,使时可以传递参数,使用$1,$2,...,$* ,$@来获取参数。建议使用function关键字来定义函数,便于代码阅读。定义格式如下:

    function_name()
    {
      list of commands
      [ return value ]
    }
    
    #或
    function function_name()
    {
      list of commands
      [ return value ]
    }

    函数返回值,可以显式增加return语句;如果不加,会将最后一条命令运行结果作为返回值。

    Shell 函数返回值只能是整数,一般用来表示函数执行成功与否,0表示成功,其他值表示失败。如果 return 其他数据,比如一个字符串,往往会得到错误提示:“numeric argument required”。

    如果一定要让函数返回字符串,那么可以先定义一个变量,用来接收函数的计算结果,脚本在需要的时候访问这个变量来获得函数返回值。

    #!/bin/bash
    
    funcWorld()
    {
        echo "world"
    }
    res=`funcWorld`
    echo "hello $res"

    运行结果:

    hello world

    2.Shell函数的调用方式

    要在脚本中调用函数, 只需给出函数名。比如要调用小节“1.Shell函数的定义格式”中的函数funcWorld(), 只需给出函数名funcWorld,函数名无需后跟小括号()。Shell函数的调用方式与Shell命令很相似。

    3.Shell函数返回值的获取

    使用$?获取。$?既可以获取上一条命令的退出状态,也可以获取函数的返回值。这里更加可以看出,Shell函数的调用与Shell命令的执行极为相似。

    #!/bin/bash
    
    add()
    {
        varAddRes=`expr $1 + $2`
        return $varAddRes
    }
    add 1 2		#调用函数,传递参数
    echo $?

    运行结果:

    3

    4.Shell函数中定义局部变量

    Shell函数中定义的变量默认是global的,其作用域从“函数被调用时执行变量定义的地方”开始,到Shell结束或被显示删除处为止。函数定义的变量可以使用local关键字显示定义成local的,其作用域局限于函数内,同名local变量会屏蔽global变量。但请注意,函数的参数是local的。

    #!/bin/bash
    
    function test()
    {
    	local localVar=dablelv	#局部变量
    }
    test
    echo $localVar			 	#输出为空

    5.Shell函数使用时需要前置申明吗

    Shell函数在使用前必须定义,没有申明的说法!一个通常的办法是把函数定义放在脚本开始部分。

    6.Shell函数的删除

    像删除变量一样,删除函数也可以使用unset命令,不过要加上-f选项,如下所示:

    unset -f function_name

    7.在命令行中使用函数

    如果想在命令行中使用函数,需要在命令行执行函数的定义。直接在命令行定义Shell函数有个缺点,一旦退出Shell,函数定义将失效。可以将函数定义在Home目录下的.bash_profile文件,或者对所有用户均生效的/etc/profile文件,这样每次登录后,profile文件都会被调用,在命令提示符后面输入函数名字就可以立即调用。

    注意:修改文件后要想马上生效需要执行source /etc/profile或者source ~/.bash_profile,不然只能在下次重新登录时才生效。

    以上就是浅谈Shell中的函数的详细内容,更多关于shell 函数的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • PowerShell中简单的自定义函数和调用函数例子
    • shell自定义函数及参数调用解析
    • Shell中关于时间和日期的函数总结
    • Linux 在Shell脚本中使用函数实例详解
    • shell 使用数组作为函数参数的方法(详解)
    • Shell使用Epoch进行日期时间转换和计算的几个小函数
    • Linux Shell函数返回值
    • Linux Shell脚本系列教程(四):使用函数添加环境变量
    • 详解shell 函数定义与调用
    上一篇:详解shell 变量
    下一篇:shell脚本定时备份MySQL数据库数据并保留指定时间
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    浅谈Shell中的函数 浅谈,Shell,中的,函数,浅谈,