函式可以讓我們將乙個複雜功能劃分成若干模組,讓程式結構更加清晰,**重複利用率更高。像其他程式語言一樣,shell 也支援函式。shell 函式必須先定義後使用。
shell 函式的定義格式如下:
function_name ()如果你願意,也可以在函式名前加上關鍵字 function:
function function_name () 函式返回值,可以顯式增加return語句;如果不加,會將最後一條命令執行結果作為返回值。
如果一定要讓函式返回字串,那麼可以先定義乙個變數,用來接收函式的計算結果,指令碼在需要的時候訪問這個變數來獲得函式返回值。
#!/bin/bash執行結果:myfunc ()
# invoke your function
myfunc
$./test.sh呼叫函式只需要給出函式名,不需要加括號。hello world
$
#!/bin/bash執行結果:myfunc()
myfunc
echo
"myfunc return $?"
where@ubuntu:~$ ./test.sh函式返回值在呼叫該函式後通過 $? 來獲得。hello world
myfunc return 5
#!/bin/bash執行結果:myfunc1 ()
myfunc2 ()
myfunc1
where@ubuntu:~$ ./test.shmyfunc1
myfunc2
#!/bin/bash執行結果:myfunc ()
myfunc
where@ubuntu:~$ ./test.shmyfunc 121
23
像刪除變數一樣,刪除函式也可以使用 unset 命令,不過要加上 f 選項,如下所示:
unset f function_name
在函式中定義的變數在整個shell指令碼中都能使用。
#!/bin/bash執行結果:myfunc ()
myfunc
echo
$var
where@ubuntu:~$ ./test.shmyfunc
888
Linux Shell指令碼基礎
shell指令碼在處理自動迴圈或大的任務方面可節省大量時間,且功能強大。任何指令碼都可能有注釋,加注釋需要此行的第乙個字元為 直譯器對此行不予解釋。指令碼不是複雜的程式,它是按行解釋的。指令碼第一行總是以 bin sh開始,這段指令碼通知shell使用系統上的 bourne shell直譯器。指令碼...
linux shell指令碼犯錯
指令碼裡犯了錯 oracle it shell value 1 oracle it shell value 1 bash value command not found oracle it shell value 3 bash value command not found oracle it sh...
Linux shell 指令碼例項
1.寫乙個指令碼,利用迴圈計算10的階乘 2.寫乙個指令碼,執行後,列印一行提示 please input a number 要求使用者輸入數值,然後列印出該數值,然後再次要求使用者輸入數值。直到使用者輸入 end 停止 執行指令碼方法 nuhup sh route.sh 注意前面要用上nohup,...