国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

UNIX Shell函數(shù)

2018-12-09 15:44 更新

Shell函數(shù)

函數(shù)允許你將一個腳本的整體功能分解成更小的邏輯子部分,然后當(dāng)需要的時候可以被調(diào)用來執(zhí)行它們各自的任務(wù)。

使用函數(shù)來執(zhí)行重復(fù)性的任務(wù)是一個創(chuàng)建代碼重用的很好的方式來。代碼重用是現(xiàn)代面向?qū)ο缶幊痰脑瓌t的重要組成部分。

Shell 函數(shù)類似于其他編程語言中的子程序和函數(shù)。

創(chuàng)建函數(shù)

聲明一個函數(shù),只需使用以下語法:

    function_name () { 
       list of commands
    }

函數(shù)的名字是 function_name,在腳本的其它地方你可以用函數(shù)名調(diào)用它。函數(shù)名后必須加括號,在其后加花括號,其中包含了一系列的命令。

例子

以下是使用函數(shù)的簡單例子:

    #!/bin/sh

    # Define your function here
    Hello () {
       echo "Hello World"
    }

    # Invoke your function
    Hello

當(dāng)你想執(zhí)行上面的腳本時,它會產(chǎn)生以下結(jié)果:

    $./test.sh
    Hello World
    $

函數(shù)的參數(shù)傳遞

你可以定義一個函數(shù),在調(diào)用這些函數(shù)的時候可以接受傳遞的參數(shù)。這些參數(shù)可以由 $1,$2 等表示。

以下是一個例子,我們傳遞兩個參數(shù) ZaraAli ,然后我們在函數(shù)中捕獲和編譯這些參數(shù)。

    #!/bin/sh

    # Define your function here
    Hello () {
       echo "Hello World $1 $2"
    }

    # Invoke your function
    Hello Zara Ali

這將產(chǎn)生以下結(jié)果:

    $./test.sh
    Hello World Zara Ali
    $

函數(shù)返回值

如果你從一個函數(shù)內(nèi)部執(zhí)行一個 exit 命令,不僅能終止函數(shù)的執(zhí)行,而且能夠終止調(diào)用該函數(shù)的 Shell 程序。

如果你只是想終止該函數(shù)的執(zhí)行,有一種方式可以跳出定義的函數(shù)。

根據(jù)實際情況,你可以使用 return 命令從你的函數(shù)返回任何值,其語法如下:

    return code

這里的 code 可以是你選擇的任何東西,但很明顯,考慮到將腳本作為一個整體,你應(yīng)該選擇有意義的或有用的東西。

例子

下面的函數(shù)返回一個值 1:

    #!/bin/sh

    # Define your function here
    Hello () {
       echo "Hello World $1 $2"
       return 10
    }

    # Invoke your function
    Hello Zara Ali

    # Capture value returnd by last command
    ret=$?

    echo "Return value is $ret"

這將產(chǎn)生以下結(jié)果:

    $./test.sh
    Hello World Zara Ali
    Return value is 10
    $

嵌套函數(shù)

函數(shù)更有趣的功能之一就是他們可以調(diào)用本身以及調(diào)用其他函數(shù)。調(diào)用自身的函數(shù)被稱為遞歸函數(shù)。

下面簡單的例子演示了兩個函數(shù)的嵌套:

    #!/bin/sh

    # Calling one function from another
    number_one () {
       echo "This is the first function speaking..."
       number_two
    }

    number_two () {
       echo "This is now the second function speaking..."
    }

    # Calling function one.
    number_one

這將產(chǎn)生以下結(jié)果:

    This is the first function speaking...
    This is now the second function speaking...

從 Prompt 函數(shù)調(diào)用

你可以把常用函數(shù)的定義放置到文件 .profile 中,這樣當(dāng)你載入的時候可以得到它們并且在 prompt 命令中使用它們。

或者,你可以將多個函數(shù)定義在一個文件中,比如 test.sh,然后通過鍵入以下內(nèi)容當(dāng)前 Shell 中執(zhí)行該文件:

    $. test.sh

這樣做可以使 test.sh 內(nèi)定義的任何函數(shù)被讀入,定義到當(dāng)前 Shell ,如下:

    $ number_one
    This is the first function speaking...
    This is now the second function speaking...
    $

要從 Shell 刪除函數(shù)的定義,你可以使用帶 .f 選項的 unset 命令。這也是用來刪除 Shell 中一個變量的定義的命令。

    $unset .f function_name
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號