鍍金池/ 教程/ Linux/ Shell 與編譯型語言的差異
Shell 特殊變量:Shell $0, $#, $*, $@, $?, $$和命令行參數(shù)
Shell 文件包含
Shell 輸入輸出重定向:Shell Here Document,/dev/null
Shell 函數(shù)參數(shù)
Shell 簡介
Shell printf命令:格式化輸出語句
第一個 Shell 腳本
Shell echo 命令
Shell 運算符:Shell 算數(shù)運算符、關(guān)系運算符、布爾運算符、字符串運算符等
Shell 數(shù)組:shell 數(shù)組的定義、數(shù)組長度
Shell until 循環(huán)
Shell if else 語句
Shell 變量:Shell 變量的定義、刪除變量、只讀變量、變量類型
Shell 字符串
Shell 與編譯型語言的差異
Shell 函數(shù):Shell 函數(shù)返回值、刪除函數(shù)、在終端調(diào)用函數(shù)
Shell 替換
Shell case esac 語句
Shell for 循環(huán)
什么時候使用 Shell
Shell 注釋
幾種常見的 Shell
Shell while 循環(huán)
Shell break 和 continue 命令

Shell 與編譯型語言的差異

大體上,可以將程序設(shè)計語言可以分為兩類:編譯型語言和解釋型語言。

編譯型語言

很多傳統(tǒng)的程序設(shè)計語言,例如 Fortran、Ada、Pascal、C、C++ 和 Java,都是編譯型語言。這類語言需要預(yù)先將我們寫好的源代碼(source code)轉(zhuǎn)換成目標代碼(object code),這個過程被稱作“編譯”。

運行程序時,直接讀取目標代碼(object code)。由于編譯后的目標代碼(object code)非常接近計算機底層,因此執(zhí)行效率很高,這是編譯型語言的優(yōu)點。

但是,由于編譯型語言多半運作于底層,所處理的是字節(jié)、整數(shù)、浮點數(shù)或是其他機器層級的對象,往往實現(xiàn)一個簡單的功能需要大量復(fù)雜的代碼。例如,在 C++ 里,就很難進行“將一個目錄里所有的文件復(fù)制到另一個目錄中”之類的簡單操作。

解釋型語言

解釋型語言也被稱作“腳本語言”。執(zhí)行這類程序時,解釋器(interpreter)需要讀取我們編寫的源代碼(source code),并將其轉(zhuǎn)換成目標代碼(object code),再由計算機運行。因為每次執(zhí)行程序都多了編譯的過程,因此效率有所下降。

使用腳本編程語言的好處是,它們多半運行在比編譯型語言還高的層級,能夠輕易處理文件與目錄之類的對象;缺點是它們的效率通常不如編譯型語言。不過權(quán)衡之下,通常使用腳本編程還是值得的:花一個小時寫成的簡單腳本,同樣的功能用 C 或 C++ 來編寫實現(xiàn),可能需要兩天,而且一般來說,腳本執(zhí)行的速度已經(jīng)夠快了,快到足以讓人忽略它性能上的問題。腳本編程語言的例子有 awk、Perl、Python、Ruby 與 Shell。

上一篇:Shell 注釋下一篇:什么時候使用 Shell