内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Shell腳本中的函數(shù)怎么使用-創(chuàng)新互聯(lián)

本篇內容介紹了“Shell腳本中的函數(shù)怎么使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設計、成都做網(wǎng)站、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務資興,10多年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18982081108

Shell腳本中的功能是什么?

函數(shù)是一組命令,這些命令被賦予一個名稱,該名稱的作用類似于該組命令的句柄。要執(zhí)行函數(shù)中定義的這組命令,只需使用您提供的名稱調用該函數(shù)即可。

在某些情況下,您需要執(zhí)行一個代碼塊,該代碼塊在shell腳本的不同位置執(zhí)行多次特定過程。Shell函數(shù)類似于其他編程語言中的子例程,過程和函數(shù)。

為什么Shell腳本中的函數(shù)?

?它有助于我們重用代碼。
?提高程序的可讀性。
?在程序內有效使用變量。
?允許我們逐個測試程序。
?將程序顯示為一系列子步驟。

要使用的語法:
 Syntax1:
 function function_name
 {
 ###命令集
 }
 Syntax2:
 函數(shù)名()
 {
 ####命令集
 }
function是聲明函數(shù)定義的關鍵工作。
function_name是聲明的函數(shù)的名稱。
Curly braces {}充當包含函數(shù)代碼的分隔符。
命令集是調用函數(shù)時要執(zhí)行的代碼。
因此,首先聲明一個函數(shù),然后在需要時調用它。

在第一種語法中,您必須使用關鍵字函數(shù),后跟函數(shù)名稱以及打開和關閉括號和花括號,以將函數(shù)的內容與主例程分開。
在第二種語法中,由函數(shù)名稱,開括號和閉括號以及花括號組成。

我們有一些shell腳本示例:

在這個例子中,我們將編寫一個非常小的函數(shù),用“----”打印一行

Shell腳本中的函數(shù)怎么使用

讓我們看看它是如何工作的:
第1行:聲明函數(shù)   print_line 。
第2行和第4行:{ }   用于分隔函數(shù)體的花括號  。
第3行:函數(shù)體中唯一的語句:使用echo命令打印一行“---”字符。
第5行:調用該  print_line   函數(shù)。
第6行:打印提供的參數(shù)   $1 。
第7行:print_line 再次調用該  函數(shù)。

注意:$1 在上面的示例中,“  ”將采用以下值,您將在執(zhí)行腳本時給出參數(shù)。
1)  打印“歡迎使用自動化實驗室”(它將使用雙引號打印整個聲明)2)  打印“歡迎使用”(它將僅顯示“收件人”聲明)3)  打印“歡迎”(它將打印只歡迎)./function.sh “To Automation Laboratories”  

./function.sh To Automation Laboratories  

./function.sh (without any argument)  

讓我們再來看一個例子:

創(chuàng)建后功能 myfunction的,它然后通過調用其調用函數(shù)的名字我們的主程序。主例程將在我們的腳本中的任何位置,未定義為我們的函數(shù)的一部分。
 #!/斌/慶典
 MyFunction的()
 {
 回聲 “哦!實際上,它的工作原理“
 }
 MyFunction的
現(xiàn)在讓我們重新安排我們的代碼來測試函數(shù)是否可以在我們的腳本中的任何地方聲明。
 #!/斌/慶典
 回聲 “用于測試”
 MyFunction的
 MyFunction的()
 {
 回聲 “哦!實際上,它的工作原理“
 }
線3  在上面的代碼段返回沒有發(fā)現(xiàn)錯誤的命令。這只意味著:
該功能只適用,如果它是你的主程序之前聲明。如果您在主程序之后聲明了您的功能,則解釋器將返回錯誤。
在函數(shù)上傳遞參數(shù)
您可以在 bash  函數(shù)中傳遞參數(shù)并處理這些數(shù)據(jù)。下面的代碼顯示了如何在 shell腳本中傳遞值的過程:
 #!/斌/慶典
 MyFunction的()
 {
 echo “第一個參數(shù)是$ 1 ”
 echo “第二個參數(shù)是$ 2 ”
 }
 myfunction“你好”“世界”

Shell腳本中的函數(shù)怎么使用

讓我們理解以上內容:

  1. 在我們調用之后,我們添加了值“Hello”和“World”  myfunction 。

  2. 這些值作為參數(shù)傳遞給myfunction并存儲在局部變量中。

  3. 解釋器將傳遞的值存儲到預定義變量中,這些變量根據(jù)傳遞參數(shù)的順序命名,1作為起始名稱直到傳遞順序。

  4. 請注意,“Hello”字存儲在變量1中,值“World”存儲在變量2中。

注意:上面的1和2是局部變量,因此,除了傳遞參數(shù)的函數(shù)之外,腳本的其他部分都無法訪問它們。

讓我們通過下面的例子來識別上面的注意事項:
 #!/斌/慶典
 MyFunction的()
 {
 echo “第一個參數(shù)是$ 1 ”
 echo “第二個參數(shù)是$ 2 ”
 }
 myfunction“你好”“世界”
 回聲 $ 1
 回聲 $ 2

在  echo $1   和  echo $2   我們的腳本的最后兩行沒有顯示,因為解釋不承認這兩個變量,因為它們都是局部給myFunction。
讓我們通過再舉一個例子來更清楚地了解這一點:
我們將編寫一個估計字符串長度的函數(shù)。該字符串將作為參數(shù)提供給函數(shù)。讓我們'看看它會是怎樣的。
嗯...在此之前,為什么我們不在Linux中增強一些有用的命令?
“  wc -l ”:計算行數(shù)
“  wc -w ”:計算單詞數(shù)
“  wc -m ”:計算字符數(shù)

Shell腳本中的函數(shù)怎么使用

第2行:聲明并初始化變量長度。
第3行:定義函數(shù)string_length。
第4行和第6行:功能代碼塊分隔符。
第5行:函數(shù)內唯一的代碼行:

length =`echo -n $ 1 | wc -m` 
傳遞給函數(shù)$ 1的參數(shù)使用echo命令打印,該命令選項  –n   可防止echo在末尾插入換行符。
命令echo的輸出通過–n $1   管道傳輸?shù)矫?nbsp; 的輸入流   wc –m  (它對輸入中的字符進行計數(shù))。
上面復合語句的結果是echo -n $ 1 | wc -m被賦予(通過使用反引號'')到可變長度。

第7行:從用戶讀取輸入字符串,并將其分配給變量  STR 。
第8行:調用  string_length 函數(shù)并將變量傳遞  STR   給它。調用該函數(shù)的結果是估計STR的長度并將計算的長度存儲在可變長度中。
第9行:將結果打印給用戶。

Bash函數(shù)返回

Bash函數(shù)可以使用關鍵字return將函數(shù)的局部變量的值傳遞給主例程。然后將返回的值存儲到默認變量$?我們來舉個例子: 

Shell腳本中的函數(shù)怎么使用

我們將參數(shù)int1和int2傳遞給add函數(shù)。接下來,該  add  函數(shù)通過該行處理它   sum=$(($1+$2)) 。然后sum變量的值通過該行傳遞給主程序   return $sum 。默認情況下,值   $sum  將存儲到默認變量   $ ?最后,行echo  "The result is: " $? 顯示結果。

注意:Shell腳本只能返回單個值。

遞歸函數(shù)意味著在函數(shù)定義中,并且在函數(shù)的代碼內部,調用語句可以出現(xiàn)調用函數(shù)(被定義)本身。這應該由測試條件控制,以確保功能將收斂。如果沒有指定條件,或者使用了錯誤的條件,該函數(shù)將永遠調用自身。

現(xiàn)在使用一個因子示例來增強此遞歸函數(shù):

Shell腳本中的函數(shù)怎么使用

 result=1 :此行將變量result初始化為1 
 factorial_function .:聲明階乘函數(shù)。
函數(shù)體Staring delimiter { 
if [$ 1 -gt1]; 然后檢查提供給函數(shù)的參數(shù)是否大于1. 
如果是,則執(zhí)行以下兩行:

  •  let “result *= $1” :這將結果的當前值乘以傳遞給函數(shù)的參數(shù)。

  •  factorial $(($1-1))  :這以遞歸方式調用階乘函數(shù),并以$ 1-1作為參數(shù)傳遞給它。
    函數(shù)體關閉分隔符}

聲明函數(shù)后,這又是主腳本代碼:
 factorial $1 

主腳本調用階乘函數(shù)并將傳遞給腳本$ 1的命令行參數(shù)傳遞給它。不要混淆代表第一個命令行參數(shù)的$ 1和代表傳遞給函數(shù)的第一個參數(shù)的$ 1。
最后一行將結果打印給用戶。

1.首先,將結果變量設置為1. 
2.解釋器遇到函數(shù)定義。
3.使用參數(shù)4調用該函數(shù)??丶⑥D移到按以下方式工作的函數(shù):

a)如果參數(shù)大于1(這是大小寫),則檢查參數(shù)(現(xiàn)在為4)。如果是,則執(zhí)行以下兩行:

i)完成通常的累加乘法運算:結果乘以參數(shù)$ 1,結果存儲在變量結果中。
ii)階乘函數(shù)被稱為“遞歸地”并且作為參數(shù)傳遞3??刂圃俅无D移到階乘函數(shù),其參數(shù)現(xiàn)在為3。

b)如果參數(shù)“3”大于1(這是大小寫),則檢查參數(shù)“3”。如果是,則執(zhí)行上述兩個步驟(i和ii)。步驟ii再次調用階乘函數(shù),其中2為參數(shù)。
c)這一直持續(xù)到使用參數(shù)1調用階乘函數(shù)。此時,if條件失敗,并且函數(shù)終止。

4.控件返回主腳本,執(zhí)行函數(shù)調用后的第一行(即將結果打印給用戶的echo命令)。

“Shell腳本中的函數(shù)怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司網(wǎng)站,小編將為大家輸出更多高質量的實用文章!

網(wǎng)站名稱:Shell腳本中的函數(shù)怎么使用-創(chuàng)新互聯(lián)
URL標題:http://www.rwnh.cn/article42/podhc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、云服務器ChatGPT、做網(wǎng)站網(wǎng)站制作、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
宜川县| 西贡区| 芷江| 泊头市| 卢氏县| 桐庐县| 建平县| 永安市| 汝南县| 陆良县| 宁津县| 洮南市| 玉屏| 浑源县| 望江县| 烟台市| 隆安县| 禹州市| 萨迦县| 贡嘎县| 松溪县| 沙湾县| 乃东县| 五大连池市| 靖边县| 麦盖提县| 万州区| 台前县| 洛扎县| 莒南县| 丰县| 光泽县| 枞阳县| 青阳县| 沂水县| 海口市| 台中市| 北辰区| 平阳县| 共和县| 会东县|