linux學習(十 Shell中的控制語句

2022-05-15 19:33:10 字數 1789 閱讀 2602

目錄

測試語句十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...