• 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点


  • 相关阅读:
    Best Time to Buy and Sell Stock
    Permutations II
    数组中最大和的子数组
    基于Socket.IO的Client封装
    Java中的ThreadLocal功能演示
    基于WebSocket的client封装
    Socket接口开发和测试实践
    自动化测试用例的原子性
    [CF1477C] Nezzar and Nice Beatmap
    [CF1477B] Nezzar and Binary String
  • 原文地址:https://www.cnblogs.com/qitian1/p/6461791.html
Copyright © 2020-2023  润新知