標誌 | 意義 | 範例 |
---|---|---|
-e | $FILE 是否存在?(常用) | if[ -e $FILE ]; then |
-f | $FILE 是否存在且為檔案(file)?(常用) | if[ -f $FILE ]; then |
-d | $FILE 是否存在且為目錄(directory)?(常用) | if[ -d $FILE ]; then |
-b | $FILE 是否存在且為一個 block device 裝置? | if[ -b $FILE ]; then |
-c | $FILE 是否存在且為一個 character device 裝置? | if[ -c $FILE ]; then |
-S | $FILE 是否存在且為一個 Socket 檔案? | if[ -S $FILE ]; then |
-p | $FILE 是否存在且為一個 FIFO (pipe) 檔案? | if[ -p $FILE ]; then |
-L | $FILE 是否存在且為一個連結檔? | if[ -L $FILE ]; then |
標誌 | 意義 | 範例 |
---|---|---|
-r | 偵測該檔名是否存在且具有『可讀』的權限? | if[ -r $FILE ]; then |
-w | 偵測該檔名是否存在且具有『可寫』的權限? | if[ -w $FILE ]; then |
-x | 偵測該檔名是否存在且具有『可執行』的權限? | if[ -x $FILE ]; then |
-u | 偵測該檔名是否存在且具有『SUID』的屬性? | if[ -u $FILE ]; then |
-g | 偵測該檔名是否存在且具有『SGID』的屬性? | if[ -g $FILE ]; then |
-k | 偵測該檔名是否存在且具有『Sticky bit』的屬性? | if[ -k $FILE ]; then |
-s | 偵測該檔名是否存在且為『非空白檔案』? | if[ -s $FILE ]; then |
標誌 | 意義 | 範例 |
---|---|---|
-nt | (newer than)判斷 $FILE1 是否比 $FILE2 新 | if[ $FILE1 -nt $FILE2 ]; then |
-ot | (older than)判斷 $FILE1 是否比 $FILE2 舊 | if[ $FILE1 -ot $FILE2 ]; then |
-ef | 判斷 $FILE1 與 $FILE2 是否為同一檔案, 可用在判斷 hard link 的判定上。 主要意義在判定,兩個檔案是否均指向同一個 inode 哩! | if[ $FILE1 -ef $FILE2 ]; then |
標誌 | 意義 | 範例 |
---|---|---|
-eq | 兩數值相等 (equal) | if[ n1 -eq n2 ]; then |
-ne | 兩數值不等 (not equal) | if[ n1 -ne n2 ]; then |
-gt | n1 大於 n2 (greater than) | if[ n1 -gt n2 ]; then |
-lt | n1 小於 n2 (less than) | if[ n1 -lt n2 ]; then |
-ge | n1 大於等於 n2 (greater than or equal) | if[ n1 -ge n2 ]; then |
-le | n1 小於等於 n2 (less than or equal) | if[ n1 -le n2 ]; then |
標誌 | 意義 | 範例 |
---|---|---|
-z | 判定字串是否為 0 ?若 $STR 為空字串,則為 true | if[ -z $STR ]; then |
-n | 判定字串是否非為 0 ?若 $STR 為空字串,則為 false。 註: -n 亦可省略 | if[ -n $STR ]; then |
= | 判定 $STR1 是否等於 $STR2 ,若相等,則回傳 true | if[ $STR1 = $STR2 ]; then |
!= | 判定 $STR1 是否不等於 $STR2 ,若相等,則回傳 false | if[ $STR1 != $STR2 ]; then |
標誌 | 意義 | 範例 |
---|---|---|
-a | (and)兩狀況同時成立 | if[ -r $FILE -a -x $FILE ]; then |
-o | (or)兩狀況任何一個成立 | if[ -r $FILE -o -x $FILE ]; then |
! | 反相狀態 | if[ ! -x $FILE ]; then |
0 回應:
張貼留言