函式可以讓我們將乙個複雜功能劃分成若干模組,讓程式結構更加清晰,**重複利用率更高。像其他程式語言一樣,shell 也支援函式。shell 函式必須先定義後使用。
shell 函式的定義格式如下:
function_name ()如果你願意,也可以在函式名前加上關鍵字 function:
function function_name ()函式返回值,可以顯式增加return語句;如果不加,會將最後一條命令執行結果作為返回值。
如果一定要讓函式返回字串,那麼可以先定義乙個變數,用來接收函式的計算結果,指令碼在需要的時候訪問這個變數來獲得函式返回值。
先來看乙個例子:
#!/bin/bash# define your function here
hello ()
# invoke your function
hello
執行結果:
$./test.sh呼叫函式只需要給出函式名,不需要加括號。hello world
$
再來看乙個帶有return語句的函式:
#!/bin/bashfunwithreturn()
funwithreturn
# capture value returnd by last command
ret=
$?echo "the sum of two numbers is $ret !"
執行結果:
the function is to get the sum of two numbers...函式返回值在呼叫該函式後通過 $? 來獲得。input first number: 25
input another number: 50
the two numbers are 25 and 50 !
the sum of two numbers is 75 !
再來看乙個函式巢狀的例子:
#!/bin/bash# calling one function from another
number_one ()
number_two ()
number_one
執行結果:
url_1 is像刪除變數一樣,刪除函式也可以使用 unset 命令,不過要加上 .f 選項,如下所示:url_2 is
$unset.f function_name
如果你希望直接從終端呼叫函式,可以將函式定義在主目錄下的 .profile 檔案,這樣每次登入後,在命令提示符後面輸入函式名字就可以立即呼叫。
30分鐘玩轉Shell Shell特殊變數
前面已經講到,變數名只能包含數字 字母和下劃線,因為某些包含其他字元的變數有特殊含義,這樣的變數被稱為特殊變數。例如,表示當前shell程序的id,即pid,看下面的 echo 執行結果29949 特殊變數列表 變數 含義 0 當前指令碼的檔名 n傳遞給指令碼或函式的引數。n 是乙個數字,表示第幾個...
30分鐘玩轉Shell Shell輸入輸出重定向
unix 命令預設從標準輸入裝置 stdin 獲取輸入,將結果輸出到標準輸出裝置 stdout 顯示。一般情況下,標準輸入裝置就是鍵盤,標準輸出裝置就是終端,即顯示器。命令的輸出不僅可以是顯示器,還可以很容易的轉移向到檔案,這被稱為輸出重定向。命令輸出重定向的語法為 command file 這樣,...
五分鐘玩轉git
許多人認為git太混亂,或認為它是一種複雜的版本控制系統,其實不然,這篇文章有助於大家快速上手使用git。使用git前,需要先建立乙個倉庫 repository 您可以使用乙個已經存在的目錄作為git倉庫或建立乙個空目錄。使用您當前目錄作為git倉庫,我們只需使它初始化。git init使用我們指定...