shell script 學習筆記-----if,for,while,case語句


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一樣,沒有雙分號,則程序會繼續往下執行而不是自動跳出


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM