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