標籤:編程 指令碼 shell 指令碼程式設計語言 unix
在linux上編程,離不開shell,計劃好好看看shell編程,並在這裡做些筆記以供有相同興趣的人分享,主要參考《shell指令碼學習指南》。
學習shell指令碼編程之前,需要瞭解指令碼程式設計語言和編譯型語言的概念。
一般很多中型、大型的程式是用編譯型語言寫成的,比如C、C++、Java等。這類程式從原始碼編譯成目標代碼,直接通過電腦執行。編譯型語言執行效率比較高,大多運作於底層,處理的是位元組、整數、浮點數等機器層級的對象,因此實現一個具體的功能,比如“將一個目錄裡的所有檔案複製到另外一個目錄中”,會比較複雜。
指令碼程式設計語言相對前者來說比較進階,主要表現在能更加簡潔的實現一些複雜的功能,因此開發的周期比較短,但是啟動並執行效率低,通常用於小型的程式。比如用作一些測試方法等。
在我的理解中,指令碼程式就是一系列命令的組合。
舉個例子。假設我想知道現在系統上有多少人登入。可以輸入 who 命令得到登入的資訊,利用wc指令可以計算數量。因此輸入 who | wc -l 即可得到當前登入的使用者數量。將該命令寫入一個檔案,並將該檔案的許可權改為可執行,那麼就能執行該檔案,效果和直接輸入who | wc -l一樣。這個檔案就是shell指令碼。這個過程就是指令碼編程。
所以,指令碼編程的過程就是:輸入一串命令,實現預期的功能,將這些命令寫入檔案,就是一個指令碼。
這裡有兩個問題:
第一,為什麼要寫成這樣一個指令檔,而不是直接輸入一些命令就行了?
事實上,shell指令碼通常用於一些日常工作,就是每天都要做的,重複很多次的,寫成指令碼之後,每次只需要運行這個程式就可以了,方便很多。
第二,指令碼程式設計語言很多種,為什麼用shell?
因為shell是unix系統中最重要、最廣泛的指令碼,所有的unix系統都會有shell,並且其功能很完備,當然要用它。更關鍵的是,它很酷炫!!
shell指令碼編程學習筆記(1)