在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ Shell 函數(shù)
Shell 輸入/輸出重定向
Shell 循環(huán)類型
Shell是什么?
Shell 特殊變量
Shell 算術(shù)運算符示例
Shell 關(guān)系運算符示例
Shell 替代
Shell 函數(shù)
Shell 條件語句
Shell 聯(lián)機幫助
Shell 數(shù)組/Arrays
Shell 布爾運算符范例
Shell
Shell if...elif...fi 語句
Shell case...esac 語句
Shell 使用Shell變量
Shell 文件測試符例子
Shell 基本運算符
Korn Shell 運算符
Shell 字符串運算范例
Shell while 循環(huán)
Shell 引用機制
Shell if...else...fi 語句
Shell select 循環(huán)
C Shell運算符
Shell 循環(huán)控制break/continue
Shell for循環(huán)
Shell until 循環(huán)
Shell if...fi語句

Shell 函數(shù)

函數(shù)允許您對分解成更小的,邏輯子部分,然后可以被要求執(zhí)行各項任務時,它需要一個腳本的整體功能。

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

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

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

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

function_name () { 
   list of commands
}

函數(shù)名 function_name,這就是你將使用它從其他地方在你的腳本調(diào)用。函數(shù)名必須遵循括號內(nèi),后括號內(nèi)的命令的列表。

例如:

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

#!/bin/sh

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

# Invoke your function
Hello

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

$./test.sh
Hello World
$

參數(shù)傳遞給函數(shù):

你可以定義一個函數(shù),它接受參數(shù),而調(diào)用這些函數(shù)。將這些參數(shù)代表$1,$2,依此類推。

以下是一個例子,我們傳遞兩個參數(shù)Zara和Ali ,然后我們捕獲和打印這些參數(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ù)的返回值:

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

如果你不是想,只是終止執(zhí)行該函數(shù),再有就是退出來的一個定義的函數(shù)。

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

return code

這里的代碼可以是任何你選擇這里,但很明顯,你應該選擇你的腳本作為一個整體的背景下是有意義的或有用的東西。

例子:

下面的函數(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ù)。被稱為遞歸函數(shù)調(diào)用自身的函數(shù)。

經(jīng)過簡單的例子演示了一個嵌套的兩個函數(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...

從提示的函數(shù)調(diào)用:

你可以把常用功能 .profile 的定義,這樣他們就會每當?shù)卿?,在命令提示符下,您可以使用它們?/p>

或者,你可以在一個文件中的定義分組為 test.sh,然后通過鍵入當前shell中執(zhí)行該文件:

$. test.sh

這樣做的效果造成任何test.sh內(nèi)定義的函數(shù),可以閱讀在如下定義為當前shell:

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

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

$unset .f function_name