• shell 函数


    语法:

    function 函数名(){

      指令...

      return n

    }

    执行函数:

    1、执行shell函数时,直接使用 函数名, 而不需要后面的括号。

    2、函数的定义必须在执行函数名以前被定义或加载。

    3、如果将函数存放在独立的文件中,被脚本加载使用时,需要使用 source或者"." 来加载。

    4、在函数内部一般使用local定义局部变量,这些变量离开函数后就会消失。

    实例:

    使用if编写的url check脚本

    #!/bin/bash
    
    if [ $# -ne 1 ];then
            echo $"usage:$0 url"
            exit 1
    fi
    
    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

    转换为使用function编写

    #!/bin/bash
    
    function usage(){
            echo $"usage: $0 url"
            exit 1
    }
    
    function check_url(){
            wget --spider -q -o /dev/null --tries=1 -T 3 $1
            if [ $? -eq 0 ];then
                    echo "$1 is yes."
            else
                    echo "$1 is no."
            fi
    }
    
    function main(){
            if [ $# -ne 1 ];then
                    usage
            fi
            check_url $1
    }
    main $1

    引入 /etc/init.d/functions 中的action 使脚本更加规范

    #!/bin/bash
    . /etc/init.d/functions
    
    function usage(){
            echo $"usage: $0 url"
            exit 1
    }
    
    function check_url(){
            wget --spider -q -o /dev/null --tries=1 -T 3 $1
            if [ $? -eq 0 ];then
                    action "$1 is yes." /bin/true
            else
                    action "$1 is no."  /bin/false
            fi
    }
    
    function main(){
            if [ $# -ne 1 ];then
                    usage
            fi
            check_url $1
    }
    main $1

    执行结果:

    [root@rhel6 script]# bash func33.py http://1.1.1.1
    http://1.1.1.1 is no.                                      [FAILED]
    [root@rhel6 script]# bash func33.py http://127.0.0.1
    http://127.0.0.1 is yes.                                   [  OK  ]
  • 相关阅读:
    dotNet程序保护方案
    网络数据包捕获函数库Libpcap安装与使用(非常强大)
    Objectivec 中 nil, Nil, NULL和NSNull的区别
    对象的相等和恒等
    IOS SDK介绍
    iOS内存管理编程指南
    http权威指南读书笔记(三)——http报文
    http权威指南学习笔记(二)
    http权威指南读书笔记(一)
    CentOS 设置环境变量
  • 原文地址:https://www.cnblogs.com/vincenshen/p/6589420.html
Copyright © 2020-2023  润新知