跳轉到內容

Bash Shell 指令碼/術語說明

來自華夏公益教科書,開放的書籍,開放的世界

Bash 命令語言是一種圖靈完備的程式語言,這意味著如果從理論上講,某個計算可以完成,那麼從理論上講,它也可以在 Bash 中完成。此外,從實際的角度來看,在 Bash 中可以完成一些非常複雜的事情,而且人們經常這樣做。儘管如此,它通常被描述為“shell 指令碼語言”(或類似的)而不是“程式語言”,而用它編寫的程式通常被稱為“Bash shell 指令碼”(或類似的)而不是“Bash 程式”。我們將在本文中遵循這種慣例,更傾向於使用指令碼來指代 Bash 指令碼,而只在指代可能從 Bash 指令碼中呼叫的外部程式時使用程式

我們還經常使用實用程式這個詞。這個詞有點主觀,用法也不盡相同,但它通常描述一個不需要人工互動的外部程式,並且旨在與其他程式很好地配合使用。所有實用程式都是程式,因此我們將互換使用這些術語。與“實用程式”完全相反的是應用程式;這個詞也是主觀的,用法也多種多樣,但它通常描述一個具有相對複雜的圖形使用者介面 (GUI) 的外部程式,並且不旨在與其他程式很好地配合使用。由於應用程式本質上一般不會從 Bash 指令碼中呼叫,因此我們使用這個詞的機會較少。許多程式既不是“實用程式”也不是“應用程式”,有些程式同時具有實用程式和應用程式的元素。

在 Bash 指令碼的各種元素中,有些通常被稱為命令,而另一些則通常被稱為語句。我們將在本文中遵守這種區別,但你不必過度關注它。通常“命令”是指對外部程式的呼叫,對類似於外部程式的 Bash 內建命令(例如 echo)的呼叫,對 shell 函式(我們將在下面看到)的呼叫等等。通常“語句”是指 Bash 程式設計結構(例如 if … then … else … fi 或變數賦值(我們將在稍後看到))的例項。可能令人困惑的是,命令也用來指代任何 Bash 內建命令,即使使用該內建命令會導致“語句”而不是“命令”;例如,“一個 if 語句”是一個使用“if 命令”的語句。如果這種區別似乎過於細緻,請不要擔心;在上下文中,應該始終能夠清楚地理解一個詞或另一個詞的含義。

華夏公益教科書