zoukankan      html  css  js  c++  java
  • shell入门之函数应用

    最近在学习shell编程,文中若有错误的地方还望各位批评指正。

    先来看一个简单的求和函数


    #!/bin/bash
    #a test about function
    f_sum 7 8
    function f_sum(){
       return $(($1+$2));
    }
    f_sum 3 5;
    total=$(f_sum 3 6);
    echo $total,$?;

    这里写图片描述


    注意几个问题:
    1.shell是逐行执行,所以要在函数声明之后才可调用,否则会有错误
    2.我们要获得函数的返回值只能通过$?来获得,不可以通过变量拿到返回值。


    再看看关于变量作用域的测试:

    #!/bin/bash
    #a test about function
    echo $(uname)
    num=100
    uname(){
       echo "my name is lenve"
       ((num++))
       return 250
    }
    changeVar(){
      local num=20
       ((num++))
       echo $num
    }
    uname;
    echo $?
    echo $num;
    changeVar;
    echo $num;

    输出:
    这里写图片描述


    要点:
    1.第一个输出Linux是第一行代码执行的结果,这是调用了系统函数
    2.调用uname,系统会优先调用这个脚本中的函数,找到了直接调用,找不到再找系统函数。于是输出my name is lenve
    3.250是uname函数的返回值
    4.101是由于num在uname函数中自增1导致的
    5.21表示如果函数中定义了与函数外部同名的变量,函数内部使用的是内部定义的变量而不是全局变量
    6.101进一步佐证了第5点


  • 相关阅读:
    UCMap移动GIS & 时空地图GIS
    LCA模板
    如何在Mac OSX上安装xgboost
    java 文件操作
    Java Date与SimpleDateFormat
    hdu 5713(状态压缩DP)
    JAVA 程序设置运行内存
    TCP/IP 小知识
    hadoop 入门实例【转】
    【JDK1.8】JDK1.8集合源码阅读——TreeMap(二)
  • 原文地址:https://www.cnblogs.com/qitian1/p/6461791.html
Copyright © 2011-2022 走看看