zoukankan      html  css  js  c++  java
  • Shell脚本编程之Shell函数

    1.Linux Shell可以用户定义函数,然后在Shell脚本中可以随便调用:

    shell中函数的定义格式如下:

    :<<!
    shell函数的定义格式如下:
    [function] funname [()]
    {
      action;
      
      [return int;]
    
    }
    !

    (1)可以带function fun()定义,也可以直接fun()定义,不带任何参数

    (2)参数返回,可以显示加:return返回,如果不加,将以最后一条命令运行结果,做为返回值,return后跟数值n(0-255)

    2.函数实例:

    demoFun(){
      echo "这是我的第一个 shell 函数!"
    }
    
    echo "-----函数开始执行-----"
    demoFun
    echo "-----函数执行完毕-----"
    
    funWithReturn(){
      echo "这个函数会对输入的两个数字进行相加运算..."
      echo "输入第一个数字: "
      read aNum
      echo "输入第二个数字: "
      read anotherNum
      echo "两个数字分别为 $aNum 和 $anotherNum !"
      return $(($aNum+$anotherNum))  //格式很重要
    
    }
    
    funWithReturn
    echo "输入的两个数字之和为 $? !"

    运行结果:

    (1)函数返回值在调用该函数后通过  $?  来获得

    (2)所有函数在使用前必须定义,这意味着必须将函数放在脚本开始部分,直至shell解释器首次发现它时,才可以使用,调用函数仅使用其函数名即可

    3.函数参数:在Shell中,调用函数时可以向其传递参数,在函数体内部,通过 $n  的形式来获取参数的值

       例如,$1 表示第一个参数,$2 表示第二个参数........

    带参数的函数实例:

    funWithParam(){
     echo "第一个参数为 $1 !"
     echo "第二个参数为 $2 !"
     echo "第十个参数为 $10 !"
     echo "第十个参数为 ${10} !"
     echo "第十一个参数为 ${11} !"         //当n>=10时,需要使用${n}来获取参数。
     echo "参数总数有 $# 个!"
     echo "作为一个字符串输出所有参数 $* !"
    }
    
    funWithParam 1 2 3 4 5 6 7 8 9 34 73

    运行结果:

     

  • 相关阅读:
    mysql 函数 存储过程 事件(event) job 模板
    protobuf 无proto 解码 decode 语言 java python
    mitmproxy fiddler 抓包 填坑
    android adb 常用命令
    android机器人 模拟 踩坑过程
    RabbitMQ添加新用户并支持远程访问
    Windows下RabbitMQ安装及配置
    Java mybatis mysql 常用数据类型对应关系
    easyExcel 踩坑
    linux防火墙查看状态firewall、iptable
  • 原文地址:https://www.cnblogs.com/hqutcy/p/8706977.html
Copyright © 2011-2022 走看看