shell程式設計之條件語句

2021-10-01 01:57:35 字數 1783 閱讀 2306

一、條件測試方法

方法1:test 條件表示式

方法2:[ 條件表示式 ]

注:方法2條件表示式與中括號之間必須有空格

二、條件測試分類

檔案測試

格式 [ 操作符 檔案或目錄 ]

常用測試操作符

-d:測試目錄是否存在

-f:測試檔案是否存在

-e:測試目錄或檔案是否存在

-r:測試當前使用者是否可讀

-w:測試當前使用者是否可寫

-x:測試當前使用者是否可執行

-s:測試檔案大小非0是為真

-u:測試是否具有suid屬性

-g:測試是否具有sgid屬性

-k:測試是否具有sticky bit 粘滯位屬性

-nt:測試第乙個檔案是否比第二個檔案新

-ot:測試第乙個檔案是否比第二個檔案舊

-ef:測試第乙個檔案是否與第二個檔案為同乙個檔案(link之類的檔案)

例:[root@localhost ~]# [ -d /etc ]

[root@localhost ~]# echo $?

0 [root@localhost ~]# test -f /etc/fstab

[root@localhost ~]# echo $?

0

整數測試

格式 [ 整數1 操作符 整數2 ]

常用測試操作符

-eq:等於

-ne:不等於

-gt:大於

-lt:小於

-ge:大於或等於

-le:小於或等於

例:[root@localhost ~]# [ 1 -eq 1 ]

[root@localhost ~]# echo $?

0 [root@localhost ~]# [ 5 -lt 1 ]

[root@localhost ~]# echo $?

1 [root@localhost ~]# [ 5 -gt 1 ]

[root@localhost ~]# echo $?

0

字元測試

格式:[ 字串1 = 字串2 ] 字串內容相等

[ 字串1 != 字串2 ] 字串內容不相等

[ -z 字串 ] 字串不為空

例: 「==」 與 「=」相同

[root@localhost ~]# [ aa == aa ]

[root@localhost ~]# echo $?

0 [root@localhost ~]# [ aa = aa ]

[root@localhost ~]# echo $?

0

邏輯測試

格式:[ 表示式1 ] 操作符 [ 表示式2 ]

命令1 操作符 命令2

常用操作符

-a 或 && :邏輯與,「而且」的意思

-o 或 || :邏輯或,「或者」的意思

!:邏輯否

例:[root@localhost ~]# [ -d /etc ] && [ -r /etc ] && echo "是目錄,具有讀的許可權"

是目錄,具有讀的許可權

[root@localhost ~]# [ -d /media/cdrom ] || mkdir -p /media/cdrom

[root@localhost ~]# ls /media/

cdrom

三、if條件語句

Shell程式設計之條件語句

test命令 測試表示式是否成立,若成立返回0,否則返回其他數值 格式一 test 條件表示式 格式二 條件表示式 檔案測試 操作符 檔案或目錄 常用的測試操作符 d 測試是否為目錄 directory e 測試目錄或檔案是否存在 exist f 測試是否為檔案 file r 測試當前使用者是否有許...

shell程式設計之if語句

目錄4.other eq 等於,如 if a eq b ne 不等於,如 if a ne b gt 大於,如 if a gt b ge 大於等於,如 if a ge b lt 小於,如 if a lt b le 小於等於,如 if a le b 小於 需要雙括號 如 a b 小於等於 需要雙括號 如...

shell程式設計if條件語句

if結構語句 if 表示式 then 語句elif 表示式 then 語句else 語句fi1 比較兩個整數大小 num 100 if num 10 then echo num 10 fi2 表示式 兩邊需要有乙個空格,等同test命令 num 100 if num gt 10 then if te...