跟鳥哥學Linux之——shell script
從程式設計師的角度來看,Shell本身是一種用C語言編寫的程式,從使用者的角度來看,Shell是使用者與Linux作業系統溝通的橋樑。使用者既可以輸入命令執行,又可以利用 Shell指令碼程式設計,完成更加複雜的操作。在系統管理等領域,Shell程式設計起著不可忽視的作用。前期我對shell程式設計做了一個初步的認識,現總結如下;
思維導圖:
知識分為了兩部分:
基本知識:
在基本知識中我將其分為了:執行方法、運算式、變數和判斷式四部分。1、執行方法就是在Linux中shell檔案執行的命令,用的多了自然會沒有問題。2、對於運算其中講解了(()),基本語句為變數=$((運算式)),其中關於得到的結果也常常運用於作為語句的判斷依據,它會得到一個返回值,即變數$?它的值為0表示語句的執行成功,非0表示語句的執行失敗。Declare 用於宣告一個變數,後面可以指明變數型別,例如:-i。同樣let也可以給變數賦予相應的值,通過運算式得到。3、對於變數其中返回值$?前邊已經提過了,對於預設的變數$#,這些預設變數一般用於每一行中依據某一標準而形成的各個欄位的表示。前期部落格中在檔案排版中曾提到過。4、判斷式有test做測試功能,它可以檢測系統檔案的相關屬性,一個很有用處的命令,後面可以接很多的引數,相關的引數要學會利用—help 或man page來查詢和學習。還有就是[ ]的相關用法了,對於[ ]用來做一些表示式的判斷,對於判斷式的結果,它同樣會得到一個返回值,所以也會作為語句中的一個判斷依據來執行一些相關的操作。
編寫語法:
看到這裡和前期學習C語言和VB語言有很多的相似之處,但也存在有很多不同之處,下邊在總結中來看他們的用法。
條件判斷語句;
If…then語句:
if後接一個判斷條件,then後接上要執行的語句,同樣結構也可拓展為如下:
if 條件then
執行語句
elif條件then
執行語句
else
執行語句
fi
case…esac語句:
功能類似於C中的switch語句。具體的結構如下:
case$變數名 in
第一個變數名)
執行語句
;;
第二個變數名)
執行語句
;;
*)
其他情況執行語句
;;
esac
函式
函式功能,這和前期學習中的函式功能相同。但結構上是有差別的,如下:
Function函式名(){
函式體
}
迴圈語句:
while/untildo done
其實while dodone語句和until do done語句是相似的都是不定次數的迴圈,只是給定條件而已,vb中接觸過的,結構如下:
while/until [判斷式]
do
執行語句
done
不同的是while在判斷式不成立時終止迴圈,而until是在條件成立時終止迴圈。
For…do…done
這個迴圈不同與前兩個的是迴圈次數是已知的,結構如下:
For變數 in 內容1 內容2 …
Do
執行語句
Done
在迴圈的過程中依次將內容n的值賦予變數來執行下邊的語句,當然內容的表示也是可以有別的方式的,否則變數多了就難以表示,例如用(seq 1 100)表示1到100。
另一種結構方式如下:
For((初始值;限制值;執行步長))
Do
執行語句
Done
這就和我們在C和VB語句中接觸的for迴圈結構更加相似了。
總述:
至此時我對shell script一個初步認識的總結,後期還要繼續學習shell的程式設計,檔案的程式設計,串列埠程式設計,程序和執行緒程式設計的相關知識和運用,和硬體慢慢結合起來做一些相關處理和操作,後邊的路還很長,要學的東西也很多,期待著那一份願景,能夠用自己所學的知識去回報社會,為更多的人服務,走向社會上在有需求的地方能夠力所能及的貢獻自己的那一份力量是一件幸福的事,我相信未來會有一個屬於我的地方來造福於他人!!