Shell腳本的條件判斷與比較
阿新 • • 發佈:2018-02-05
shell腳本 中一 不能 rst ali 大小 表達式 操作符 內容 條件測試常用的語法:
語法格式 | 說明 |
[ <測試表達式> ] | []的邊界和內容之間至少有一個空格 |
[[ <測試表達式> ]] | [[]的邊界和內容之間至少有一個空格 |
註意:&&、||、>、<等操作符可以應用於[[]]中,但不能應用於[]中,在[]中一般用-a,-o,-gt(用於整數)代替上述操作符
常用的文件判斷操作符
-d 文件,d的全拼為directory | 文件存在且為目錄則為真,即測試表達式成立 |
-f 文件,f的全拼為file | 文件存在且為普通文件則為真,即測試表達式成立 |
-e 文件, e的全拼為exist | 文件存在則為真,即測試表達式成立。-e不辨別是目錄還是文件 |
-r/w/x 文件,r/w/x的全拼為read/write/executable | 文件存在且可讀/可寫/可執行,即測試表達式成立 |
-s 文件,s的全拼為size | 文件存在且文件大小不為0則為真 |
-L 文件,L的全拼為Link | 文件存在且為鏈接文件則為真 |
f1 -nt f2,nt的全拼為newer than | 文件f1比文件f2新則為真 |
f1 -ot f2,ot的全拼為older than | 文件f1比文件f2舊則為真 |
常用的字符串測試表達式
-n "字符串" | 若字符串的長度不為0,則為真 |
-z "字符串" | 若字符串的長度不為0,則為真 |
操作符比較
在test以及[]中使用的比較符號 | 在(())和[[]]中使用的比較符號 | 說明 |
-eq | ==或= | 等於 |
-ne | != | 不等於 |
-gt | > | 大於 |
-ge | >= | 大於等於 |
-lt | < | 小於 |
-le | <= | 小於等於 |
-a | && | 與 |
-o | || | 或 |
! | ! | 非 |
Shell腳本的條件判斷與比較