Shell脚本之条件判断
1.基本語法
[ condition ](注意condition前后要有空格)注意:條件非空即為true,[ 666 ]返回true,[] 返回false。
2. 常用判斷條件
(1)兩個整數之間比較= 字符串比較
-lt 小于(less than)
-le 小于等于(less equal)
-eq 等于(equal)
-gt 大于(greater than)
-ge 大于等于(greater equal)
-ne 不等于(Not equal)
(2)按照文件權限進行判斷
-r 有讀的權限(read)
-w 有寫的權限(write)
-x 有執行的權限(execute)
(3)按照文件類型進行判斷
-f 文件存在并且是一個常規的文件(file)
-e 文件存在(existence)
-d 文件存在并是一個目錄(directory)
注意:任何命令的執行狀態為0則為True,否則為False
3、案例
a、判斷當前目錄下某個文件是否存在
[ -e 文件名 ]
echo $?
b、判斷當前文件是否存在并且是一個目錄
[ -d 文件名 ]
echo $?
(4)多條件判斷
&& 表示前一條命令執行成功時,才執行后一條命令;
|| 表示上一條命令執行失敗后,才執行下一條命令
邏輯與
a
為什么打印ok?
因為條件表達式中23<24為True,而True 和 另一個條件不能確定整個結果,所以&&后面的echo ok要執行
b、
[root@mylinux2 shell]# [ 25 -lt 24 ] && echo ok [root@mylinux2 shell]# echo $? 1為什么執行不正確?
因為條件表達式25<24為False,而False && XXX,XXX為任意的邏輯運算都為False,所以后面的 echo ok 就不用執行了
邏輯或
[root@mylinux2 shell]# [ 25 -lt 24 ] || echo ok ok為什么打印ok?
因為條件表達式中25<24為False,而False 和 另一個條件不能確定整個結果,所以 || 后面的echo ok要執行
為什么執行正確?
因為條件表達式23<24為True,True || XXX,XXX不管是任何邏輯運算,其結果都為True,所以輸出為0
4、if判斷
1.基本語法
if [ 條件判斷式 ];then 程序 fi注意事項:
1)[ 條件判斷式 ],中括號和條件判斷式之間必須有空格
2)if后要有空格
腳本如下:
執行代碼:
總結
以上是生活随笔為你收集整理的Shell脚本之条件判断的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shell编程之数学运算
- 下一篇: 【MySQL】按平均成绩从高到低显示所有