武漢大學國際軟體學院 2010級國際2班 李三乎 好久沒寫日誌了,今天寫一個。
對於一種新的語言的學習,最近感覺書上還是很經典的,雖然從標識符開始講很讓人不爽,但是現在發現要想快速掌握一門語言的話按照書上的結構還是很正確的。當然只是說書上的結構,內容有的還是偏容易。 對於shell編程,先說下變數的聲名,跟javascript一樣,不用聲名,直接使用,賦值就行了。變數的使用有以下幾種方式:1.$varname 2.${varname}。第二種主要是為了一種特殊情況,比如想列印2nd這個2是儲存在變數two裡的,但是和nd串連在一起了,第一種就不能用了,用第二種。 再看shell的資料類型有哪些,只有一種字串類型。 shell編程每條語句的分割符:換行或是分號,其中大括弧可以把幾條用分號隔開的語句作為一個整體,即語句塊。 shell編程是面向過程的編程,而不是物件導向的,所以要考慮函數的聲明和使用。格式
functionname(){# inside the body $1 is the first argument given to the function# $2 the second ...body}
使用的時候直接使用functionname就行,不需要括弧,如果有參數的話函式宣告和使用也都不用括弧,直接在語句分割符之前在後面用空格分割每個參數就好。有一點要注意,shell必需是先聲明後使用,像C,C++一樣,跟java那種物件導向的不一樣。 一個程式功能過程中,只有以下幾種語句的可能:普通語句,迴圈語句,條件分支語句。 shell裡的普通語句:上邊講的差不多了。 迴圈語句:while 運算式 ;do迴圈體donefor 變數名 in 運算式1 運算式2 運算式3 …… ;do迴圈體done 條件分支語句: 我的理解,這個分為條件陳述式和分支語句,當然,這兩個本質上是一個東西。條件陳述式:if ....; then....elif ....; then....else....fi 用老師的話說這個fi是屬於惡搞弄的,呵呵 if fi包括下邊的case esac程式員的惡搞。case ... in...) do something here ;;esac 這個是分支語句。 對於任何一種過程化的語言,應該可以按照以上的步驟速成,第一步搞明白變數的聲明,使用,類型,每種類型的特殊之處,就比如shell中的字串類型,特殊點有很多,比如用雙引號和單引號的不同,有沒有逸出字元啊,萬用字元之類的。 第二步,函數的聲明及使用方法,這個是過程化語言幾乎是最重要的一點了。 第三步,流程式控制制語句即條件分支語句和迴圈語句的使用方法,格式。 當然這隻是一個架構,每一種的特殊之處要查書,遇到了再查也一樣。 也要學會使用別人寫好的函數,要能看懂別人寫的文檔,知道如何輸入參數,獲得輸出,函數是幹什麼的。