幾乎所有的高階程式語言都必須提供副程式的功能,讓程式設計者可以將重複性的 任務寫成副程式,俾便重複使用,既能節省空間,程式也比較清爽,有助於對邏輯的 分析與理解。副程式在不同的程式語言中,有不同的名稱,在 C 與 Shell 中,叫做 函數或函式 (Function)、在物件導向(Objet-Oriented)程式中,稱為方法 (Method)。
 
   
原始的 Bourne Shell 中並無提供 Function 功能,但是因為可以很方便的呼叫外部指令, 所以外部指令也肩負著 副程式的功能。但是這樣的方式畢竟是美中不足的,一個 script 寫下來,可能需要佔用好多檔案,難以管理,要檢視 script 時要分開檢視很多檔案,也是很麻煩,再者外部指令是要啟動另一個shell 程序去執行,也會佔用太多系統資源。 有鑑於此,Korn Shell 特地加進了函數(Function)的功能,雖然很陽春,但是畢竟有了 副程式的樣子,解決了部分的問題。
 
   
函數 (Function) 的格式很簡單,如下:

  function-name()
  {
      commands
  }
先需定義,才能使用
首先定義函數名稱,後接括弧,而括弧 '()' 中必須是空的。
使用 return [n]' 敘明離開狀態, 相當於 'exit [n]'。
若無 return statement, 最後執行的指令的狀態 (Exit Status) 就作為整個函數的 exit status.
 
 
呼叫 (Invoke)
 
   
呼叫函數時,就像在命令列下直接下命令一般,例如:
myfunc()
{
echo Input are: $1 $2 $3
}
myfunc 10 20 30 
結果螢幕上會印出 10 20 30 出來。
Input are: 10 20 30 
Man Page of 'return'
Web Page Copyright: 亞洲大學資訊電機學院 連耀南 yaonanlien@asia.edu.tw  function.htm,  Thu Sep 7 16:18:55 CST 2023