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

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

Shell 函數(shù)

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

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

Shell函數(shù)是類(lèi)似于其他編程語(yǔ)言中的子程序,過(guò)程和函數(shù)。

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

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

function_name () { 
   list of commands
}

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

例如:

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

#!/bin/sh

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

# Invoke your function
Hello

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

$./test.sh
Hello World
$

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

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

以下是一個(gè)例子,我們傳遞兩個(gè)參數(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í)行一個(gè)exit命令從一個(gè)函數(shù)內(nèi)部,其效果不僅是終止執(zhí)行的功能,而且Shell 程序中調(diào)用該函數(shù)。

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

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

return code

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

例子:

下面的函數(shù)返回一個(gè)值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ù)。被稱(chēng)為遞歸函數(shù)調(diào)用自身的函數(shù)。

經(jīng)過(guò)簡(jiǎn)單的例子演示了一個(gè)嵌套的兩個(gè)函數(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 的定義,這樣他們就會(huì)每當(dāng)?shù)卿?,在命令提示符下,您可以使用它們?/p>

或者,你可以在一個(gè)文件中的定義分組為 test.sh,然后通過(guò)鍵入當(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...
$

要?jiǎng)h除從 shell 函數(shù)的定義,可以使用unset命令 .f 選項(xiàng)。這是相同的命令來(lái)刪除一個(gè)變量的定義Shell。

$unset .f function_name