一、if內的判斷條件爲邏輯運算:shell
二、if內的判斷條件爲目錄是否存在,文件是否存在,下圖先檢驗目錄/home/monster是否存在,而後再檢測/home/monster中的file.txt文件是否存在,這裏須要注意的是在進行文件目錄是否存在一類的判斷時,只能使用"[]"括號。「()」括號通常僅用於算數運算。固然,在一個if中能夠存在多個判斷條件,用-a(與)或者-o(或)連起來,不過這裏須要特別注意的是,shell和C/C++,JAVA是不一樣的,它在一個if中的全部判斷條件都會執行到,而不是像C語言裏,若是兩個判斷條件相與,第一個條件錯了,那麼第二個條件便再也不執行。所以對於shell應該特別當心,避免沒必要要的錯誤blog
三、相等的判斷,這裏須要注意的是,若比較符號爲"-eq"則爲算數比較,若爲「=」或者「==」則比較兩個字符是否相同,以下所示:it
四、while循環的使用以下圖所示,當判斷條件用"(( ))"圍起來的時候,裏面能夠進行算數邏輯判斷,若是判斷文件是否存在之類則須要使用"[ ]",固然while以後也能跟命令進行判斷。這裏須要注意的是,若是while後面跟命令進行判斷,則命令執行返回的結果非零則跳出循環,而"(( ))"的判斷條件是爲零跳出循環。所以,想要程序無限循環,則使用語句while (( 1 ))...便可for循環
五、shell裏面的for循環以下圖所示,顯然,和C語言的表示方式差很少,不過是單括號變成了雙括號而已file
六、浮點數的for循環,其實和整數相似,不過是起點,終點,累加值都變爲浮點數而已,其中seq每隔0.1產生一個新的數字,佔據一行,而後fp依次從中取數循環
七、shell裏面的case語句至關於C語言中的switch語句,須要注意的是,shell中用兩個分號表示break語句,並且default語句用通配符「*"表示。固然,和switch同樣,沒有雙分號,則程序會繼續往下執行而不是自動跳出程序