美文网首页ShellShell和命令
Bash编程007——函数(一)

Bash编程007——函数(一)

作者: 若梦儿 | 来源:发表于2018-12-29 20:56 被阅读2次

    Bash编程007——函数(一)

    使用函数可以对程序进行更好滴组织,将一些相对独立的代码变成函数,可以提高程序的可读性和重用性,避免重复编写大量相同的代码。

    7.1 函数

    7.1.1 函数定义

    简单来说,函数就是将一组功能相对独立的代码集中起来,形成一个代码块,这个代码块可以完成某个具体地任务。本质上来说,函数是一个函数名到某个代码块的映射。当定义了函数之后,就可以通过函数名来调用其所对应的代码块。

    对于shell函数而言,函数与shell脚本并没有明显的区别,shell脚本中可以使用的命令和语句,都可以在函数中使用。但是,在执行时,函数和脚本还是有着本质上的区别。shell脚本在执行时,会创建一个新的shell进程来解释执行脚本中的代码,脚本执行完成,shell进程就会结束;而函数在执行时,系统并不会为其单独创建一个进程,而是在调用者的进程中直接解释执行函数中的代码。

    7.1.2 基本语法

    函数基本语法:

    function name (){
        commands;
    }
    // 或者可以省略function
    name () {
        commands;
    }
    

    函数名的命名规则和变量的命名规则相同,由数字、字母或下划线组成且以字母或下划线开头的字符串。

    示例:

    function Hello(){
        echo "Hello world"
    }
    # 执行
    Hello
    # 结果:Hello world
    

    7.1.3 传递参数

    当某个函数定义之后,用户就可以通过函数名来调用该函数。调用函数的基本语法如下:

    func argv1 argv2 ...    
    

    其中func表示函数名,argv1、argv2等表示传递给函数的参数

    在函数中可以通过一些特殊的变量来访问传递过来的参数:

    n,表示传递给函数的第n个参数,\1表示第一个参数等

    S#,表示传递参数的总个数

    $*,表示以"argv1 argv2 ..."的形式返回所有参数的值

    S@,表示以"argv1" "argv2" ...的形式返回所有参数的值

    示例:

    function hi() {
        echo $#
        echo $*
    }
    # 执行:hi 1 2 3 4 5 6
    # 结果:
    6
    1 2 3 4 5 6
    

    7.1.4 函数返回值

    在shell中,处理函数的返回值可以分为以下几种情况来讨论。

    使用return语句返回某个数值,但是只能返回0~255之前的整数值。

    将返回的数据输出到标准输出,比如使用echo命令。

    示例:

    function getStr() {
        echo "hello"
    }
    # 使用:
    str=$(getStr)
    echo $str
    # 结果:hello
    

    相关文章

      网友评论

        本文标题:Bash编程007——函数(一)

        本文链接:https://www.haomeiwen.com/subject/oxzplqtx.html