当前位置:   article > 正文

[Linux][Shell][Shell函数]详细讲解

[Linux][Shell][Shell函数]详细讲解


1.创建函数

  • 语法:关键字 或 C风格
    function name 
    {
    	commands
    }
    
    name()
    {
    	commands
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

2.执行函数

  • 执行Shell函数,直接写函数名即可,无需添加其他内容
  • 函数必须先定义,再执行,Shell脚本自上而下加载
  • 函数体内定义的变量,称之为局部变量
    • 函数内,使⽤local关键字,定义局部变量
  • 函数体内需要添加return语句,作⽤是退出函数,且赋予返回值给调⽤该函数的程序
  • return语句和exit不同
    • return:结束函数的执⾏,返回⼀个(退出值、返回值)
    • exit:结束Shell环境,返回⼀个(退出值、返回值)给当前的shell
  • 函数如果单独写⼊⼀个⽂件⾥,需要⽤source读取
    • 本质:读取到当前环境变量中

3.给函数传入参数

  • 传参和调用形势类似于在命令行中给一个脚本传入参数
    SnowK()
    {
    	echo "传入的参数为$1 $2 $3, 共 $# 个"
    }
    
    SnowK I am DieSnowK
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 示例:URL检测脚本
    #!/bin/bash
    
    Usage()
    {
        echo "Usage: $0 url"
        exit 1
    }
    
    # 程序开发的习惯,设置一个入口函数,对需要执行的函数统一管理
    CheckUrl()
    {
        wget --spider -q -o /dev/null --tries=1 -T 5 $1
    
        if [ $? -eq 0 ]
        then
            echo "$1 is Yes"
        else
            echo "$1 is No"
        fi
    }
    
    main()
    {
        if [ $# -ne 1 ]
        then
            Usage
        fi
    
        CheckUrl $1
    }
    
    # $* -> 将所有传入进来的参数,当作一个整体,是常见用法
    main $*
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

4.返回值

  • 函数结束,有状态码
    • 通过$?获得
    • return可以制定特殊的退出状态码
  • 这种方式有一个
    • 函数结束后应⽴即取返回值
      • 否则会被覆盖丢失
    • 退出状态码在0~255之间

5.函数中处理变量

1.全局变量

  • 默认情况下,脚本⾥定义的任何变量都是全局变量,只要不是写在函数体内

2.局部变量

  • ⽆需在函数中使⽤全局变量,函数内部使⽤的任何变量都可以被声明为局部变量,为了实现这⼀点,只需要加上local关键字即可
    func()
    {
        local temp=$[ $value + 5 ]
        result=$[ $temp * 2 ]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/832927
推荐阅读
相关标签
  

闽ICP备14008679号