目錄
測試語句十shell的特有功能,shell提供了一組測試運算子,通過這些運算子,shell程式能夠判斷某個或者某幾個條件是否成立。
在shell中使用者可以使用測試語句來測試指定條件表示式的條件的真和假。當指定條件為真,條件測試的返回值為0;反之,條件測試的返回值為非0值。條件測試的語法有兩種,分別是test命令和命令
test expression
其中,引數expression表示需要進行測試的語句,整個test語句為真,test返回0,若為假,則返回非0
筆者強烈推薦test語句,語句十分糟糕,要求十分嚴格,會出現各式各樣的錯誤,不利於初學者學習
[expression]
其中,引數expression的語句與test命令中語法完全相同。條件表示式和左右方括號之間都必須有乙個空格
檔案測試指的是根據給出的路徑,判斷當前路徑下的檔案屬性及型別。
test op file
[ op file ]
環境變數
說明-a
若檔案存在,則條件測試返回結果為0
-b若檔案存在,且為塊檔案,則條件測試返回結果為0
-c若檔案存在,且為字元檔案,則條件測試返回結果為0
-d若檔案存在,且為目錄檔案,則條件測試返回結果為0
-e若檔案,則條件測試返回為0
-f若檔案存在,且為常規檔案,則條件測試返回結果為0
-r若檔案存在且可讀,則條件測試返回結果為0
-w若檔案存在且可寫,則條件測試返回結果為0
-x若檔案存在且可執行,則條件測試返回結果為0
-p若檔案存在且是fifo檔案,則條件測試返回結果為0
-s若檔案存在且不是空檔案,則條件測試返回結果為0
test 操作符
操作符
說明str
判斷指定字串是否為空
str1==str2
若字串相等就為0
-n str
判斷字串是否為非空串,若為空串則測試結果為0
-z str
若為空串,則測試結果為0
與字串類似,數值測試也有兩種形式的語法
test number1 op number2
或者
[ number1 op number2 ]
操作符
說明n1 -eq n2
比較n1是否等於n2,如果等於,則測試結果為0
n1 -ne n2
若n1不等於n2,則測試結果為0
n1 -lt n2
比較n1是否小於n2,n1如果小於n2,測試結果為0
n1 -le n2
比較n1是否小於等於n2,n1如果小於等於n2,測試結果為0
n1 -gt n2
比較n1是否大於n2,n1如果大於n2,測試結果為0
n1 -ge n2
比較n1是否大於等於n2,n1如果大於等於n2,測試結果為0
邏輯操作符相當於c語言中的&&、||、!
操作符說明
!exp
邏輯非,條件表示式為假,則該操作符的運算結果為真
exp1 -a exp2
邏輯與,條件exp1和exp2的值都為真時,整個表示式為真
exp1 -o exp2
邏輯或,條件表示式exp1和exp2的值有乙個為真,整個表示式為真
(exp)
圓括號,將表示式分組,優先得到結果
十 Shell中的萬用字元
萬用字元用於模式匹配,如檔名匹配 路經名搜尋 字串查詢等,常用的萬用字元有 和括在方括號 中的字串行,用 戶可以在作為命令引數的檔名中包含這些萬用字元,構成乙個所謂的 模式串 在執行過程中進行模式匹配 代表任何多個字串,例如 a 匹配以a打頭的任意字串。但應注意,檔名前的圓點 和路經名中的斜線 必須...
linux學習(七 Shell程式設計中的變數
目錄 root localhost vi mytestecho 你想要輸出的內容 執行指令碼的方法 sh 你建立的shell指令碼的名字bash 你建立的shell指令碼的名字開啟乙個子shell去讀取,不需要有執行許可權 或者source 你建立的shell指令碼的名字區別 在當前shell內執行...
學習Linux的Shell命令
今天是第二天學習,老師給我們講了linux的常用命令!課堂筆記 linux系統管理技術 linux系統的使用方式 1.桌面環境操作 傻瓜化,直觀友好,但功能不夠強大,某些操作效率很低甚至無法完成 2.shell命令 專業高效,但非常不直觀友好,學習難度大,需要記憶命令 常用的桌面環境 gnome和k...