IT科技

當前位置 /首頁/IT科技 > /列表

test命令,linux

1、test命令功能:用來檢查文件和比較值。

2、test命令使用:

判斷表達式:

if test  (表達式為真)

if test !表達式為假

test 表達式1 –a 表達式2    兩個表達式都為真

test 表達式1 –o 表達式2    兩個表達式有一個為真

判斷字符串:

test –n 字符串                  字符串的長度非零

test –z 字符串                   字符串的長度為零

test 字符串1=字符串2            字符串相等

test 字符串1!=字符串2         字符串不等

判斷整數

test 整數1 –eq 整數2                        整數相等

test 整數1 –ge 整數2                        整數1大於等於整數2

test 整數1 –gt 整數2                         整數1大於整數2

test 整數1 –le 整數2                         整數1小於等於整數2

test 整數1 –lt 整數2                          整數1小於整數2

test 整數1 –ne 整數2                        整數1不等於整數2

判斷文件

test  File1 –ef  File2                            兩個文件具有同樣的設備號和i結點號

test  File1 –nt  File2                            文件1比文件2 新

test  File1 –ot  File2                            文件1比文件2 舊

test –b File                                           文件存在並且是塊設備文件

test –c File                                           文件存在並且是字符設備文件

test –d File                                           文件存在並且是目錄

test –e File                                           文件存在

test –f File                                            文件存在並且是正規文件

test –g File                                           文件存在並且是設置了組ID

test –G File                                           文件存在並且屬於有效組ID

test –h File                                           文件存在並且是一個符號鏈接(同-L)

test –k File                                           文件存在並且設置了sticky位

test –b File                                           文件存在並且是塊設備文件

test –L File                                           文件存在並且是一個符號鏈接(同-h)

test –o File                                           文件存在並且屬於有效用户ID

test –p File                                           文件存在並且是一個命名管道

test –r File                                            文件存在並且可讀

test –s File                                           文件存在並且是一個套接字

test –t FD                                             文件描述符是在一個終端打開的

test –u File                                           文件存在並且設置了它的set-user-id位

test –w File                                          文件存在並且可寫

test –x File                                           文件存在並且可執行

3、工作原理:

test 命令最短的定義可能是評估一個表達式;如果條件為真,則返回一個 0 值。如果表達式不為真,則返回一個大於 0 的值 — 也可以將其稱為假值。檢查最後所執行命令的狀態的最簡便方法是使用 $? 值。出於演示的目的,本文中的例子全部使用了這個參數。

test 命令期望在命令行中找到一個參數,當 shell 沒有為變量賦值時,則將該變量視為空。這意味着在處理腳本時,一旦腳本尋找的參數不存在,則 test 將報告該錯誤。

當試圖保護腳本時,您可以通過將所有參數包含在雙引號中來解決這個問題。然後 shell 將變量展開,如果變量沒有值,那麼將傳遞一個空值給 test。另一種方法是在腳本內增加一個額外檢查過程來判斷是否設置了命令行參數。如果沒有設置命令行參數,那麼腳本會告訴用户缺少參數,然後退出。

4、test 文件運算符

利用這些運算符,可以在程序中根據對文件類型的評估結果執行不同的操作:

-b file 如果文件為一個塊特殊文件,則為真

-c file 如果文件為一個字符特殊文件,則為真

-d file 如果文件為一個目錄,則為真

-e file 如果文件存在,則為真

-f file 如果文件為一個普通文件,則為真

-g file 如果設置了文件的 SGID 位,則為真

-G file 如果文件存在且歸該組所有,則為真

-k file 如果設置了文件的粘着位,則為真

-O file 如果文件存在並且歸該用户所有,則為真

-p file 如果文件為一個命名管道,則為真

-r file 如果文件可讀,則為真

-s file 如果文件的長度不為零,則為真

-S file 如果文件為一個套接字特殊文件,則為真

-t fd 如果 fd 是一個與終端相連的打開的文件描述符(fd 默認為 1),則為真

-u file 如果設置了文件的 SUID 位,則為真

-w file 如果文件可寫,則為真

-x file 如果文件可執行,則為真

 

linux test命令

TAG標籤:命令 linux test #