• 13 函数


    传递参数


    在bash shell 编程中, 向函数传递的参数仍然是位置参数的方式来传递的, 而不能传递数组等其他形式的变量, 这与C语言
    或JAVA语言的函数传递是不同的.

    #!/bin/bash

    half()
    {
    let "n = $1"
    let "n = n/2"
    echo "In function half() n is $n"
    }


    #函数调用
    let "m = $1"
    echo "Before the function half() is called, m is $m"
    half $m # 注意, 函数执行时, 不带()
    echo "After the function half() is called, m is $m"

    函数返回值


    有时需要脚本执行完成后返回特定的值来完成脚本的后继操作, 在linux shell编程中, 函数是通过 return 返回其退出状态, 0表示无错误, 1表示有错误
    在脚本中可以有选择的使用 return 语句.
    看来, 返回值, 只是一个标记, 跟脚本返回值一样.

    函数调用


    首先, 函数之间可以调用, 后边的可以调用自己(递归调用)或前边的函数
    比如有多个函数, 顺序执行函数
    show_week
    show_number
    show_square

    在函数内部调用其他函数
    choice()
    {
    case $char in
    s)
    square;;
    c)
    cube;;
    p)
    power;;
    *)
    echo "What you input is wrong!";;
    esac
    }

    局部变量和全局变量


    首先, 局部变量定义, 另外, 局部变量可以和全局变量同名, 并且在函数内, 全局变量会被局部变量隐藏(跟C一样)
    use_local_var()
    {
    local text="local variable"
    }
    另外, 如果你在函数外部定义了一个变量, 在函数内部没有使用 local 来声明跟外部同名的变量, 那么, 这两个变量实际上是一个地址,
    如果你修改了这个变量在函数内部, 那么也会直接影响着函数外边的结果, 例如:

    #!/bin/bash
    count=1
    echo "$count" # 结果是1

    int_count()
    {
    count=2
    echo "$count2" # 结果是2
    }

    echo "$count" # 结果是2, 注意这里, 外部变量的结果已经变了

  • 相关阅读:
    【英语天天读】First Inaugural Address
    【英语天天读】Choose Optimism
    【OpenCV学习】图像格式转换
    【英语天天读】奥哈拉给女儿的信
    【英语天天读】Develop Your Own Helping Rituals
    【英语天天读】家
    【英语天天读】love is difficult
    【英语天天读】Choose companion
    【英语天天读】主动的玩乐还是被动的消遣
    Devpress.XtraGrid.GridControl.GridView 属性
  • 原文地址:https://www.cnblogs.com/moveofgod/p/4656718.html
Copyright © 2020-2023  润新知