日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Shell脚本之条件判断

發布時間:2025/3/21 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 $?

[root@mylinux2 shell]# [ 23 -lt 24 ] [root@mylinux2 shell]# echo $? 0 [root@mylinux2 shell]# [ 23 -le 24] -bash: [: 缺少 `]' [root@mylinux2 shell]# [ 23 -le 24 ] [root@mylinux2 shell]# echo $? 0 [root@mylinux2 shell]# [ 23 -le 22 ] [root@mylinux2 shell]# echo $? 1 04_特殊變量-1.sh是否具有寫權限 [root@mylinux2 shell]# [ -w 04_特殊變量-1.sh ] [root@mylinux2 shell]# echo $? 004_特殊變量-1.sh是否具有可執行的權限 [root@mylinux2 shell]# [ -x 04_特殊變量-1.sh ] [root@mylinux2 shell]# echo $? 104_特殊變量-1.sh是否是一個常規的文件(file) [root@mylinux2 shell]# [ -f 04_特殊變量-1.sh ] [root@mylinux2 shell]# echo $? 004_特殊變量-1.sh是否是一個目錄 [root@mylinux2 shell]# [ -d 04_特殊變量-1.sh ] [root@mylinux2 shell]# echo $? 1判斷文件04_特殊變量-1.sh是否存在當前目錄下 [root@mylinux2 shell]# [ -e 04_特殊變量-1.sh ] [root@mylinux2 shell]# echo $? 0

(4)多條件判斷
&& 表示前一條命令執行成功時,才執行后一條命令;
|| 表示上一條命令執行失敗后,才執行下一條命令

邏輯與
a

[root@mylinux2 shell]# [ 23 -lt 24 ] && echo ok ok

為什么打印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要執行

[root@mylinux2 shell]# [ 23 -lt 24 ] || echo ok [root@mylinux2 shell]# echo $? 0

為什么執行正確?
因為條件表達式23<24為True,True || XXX,XXX不管是任何邏輯運算,其結果都為True,所以輸出為0

4、if判斷

1.基本語法

if [ 條件判斷式 ];then 程序 fi

注意事項:
1)[ 條件判斷式 ],中括號和條件判斷式之間必須有空格
2)if后要有空格

腳本如下:

執行代碼:

[root@mylinux2 shell]# bash 09if判斷-1.sh 12 未成年 [root@mylinux2 shell]# bash 09if判斷-1.sh 24 青年 [root@mylinux2 shell]# bash 09if判斷-1.sh 33 中老年

總結

以上是生活随笔為你收集整理的Shell脚本之条件判断的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。