真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Shell條件測試語句及三種if語句-創(chuàng)新互聯(lián)

7 - Shell_條件操作測試及if語句

成都創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)由有經(jīng)驗的網(wǎng)站設(shè)計師、開發(fā)人員和項目經(jīng)理組成的專業(yè)建站團隊,負責網(wǎng)站視覺設(shè)計、用戶體驗優(yōu)化、交互設(shè)計和前端開發(fā)等方面的工作,以確保網(wǎng)站外觀精美、成都網(wǎng)站設(shè)計、成都網(wǎng)站制作易于使用并且具有良好的響應性。

要使Shell腳本程序具備一定的“智能”,面臨的第一個問題就是如何區(qū)分不同的情況以確定執(zhí)行何種操作。例如,當磁盤使用率超過95%發(fā)送警告;當備份目錄不存在時能夠自動創(chuàng)建;當源碼編譯程序的配置失敗則不再繼續(xù)安裝等。

Shell環(huán)境根據(jù)命令執(zhí)行后的返回狀態(tài)值($?)來判斷是否執(zhí)行成功,當返回值為0,表示成功,值為其他時,表示失敗。

使用專門的測試工具—test命令,可以對特定條件進行測試,并根據(jù)返回值來判斷條件是否成立(返回值0為成立)

使用test命令的兩種形式

A:test 條件表達式

B:[ 條件表達式 ]

以上兩種方法的作用完全一樣,后者為常用。但后者需要注意方括號“[”、“]”與條件表達式之間至少有一個空格。

1. 文件測試

文件測試指的是根據(jù)給的路徑,判斷對應的是文件還是目標,或者判斷文件是否有可讀可寫、可執(zhí)行等權(quán)限。常見操作如下:

Shell條件測試語句及三種if語句

執(zhí)行條件測試操作以后,通過預定義變量“$?”可以獲得測試命令的返回狀態(tài),從而判斷該條件是否成立。

例如:一下操作判斷/media/cdrom/目錄是否存在,返回值為1成立。

Shell條件測試語句及三種if語句

若測試條件不存在,則測試返回值將不為0(通常為1),如圖所示:

Shell條件測試語句及三種if語句

2. 整數(shù)值比較

主要根據(jù)給定的兩個值,判斷第一個與第二個數(shù)的關(guān)系,如是否大于、小于、等于第二個數(shù)。常見選項如下:

Shell條件測試語句及三種if語句

整數(shù)值比較在Shell腳本應用中比較多。例如:判斷已登錄用戶數(shù)量、開啟進程數(shù)、磁盤使用率是否超標,以及軟件版本是否符合要求。實際使用時,往往會通過變量引用,命令替換等方式來獲取一個值。

例如:若要判斷當前已登錄的用戶數(shù),當超過五個時輸出“Too may”,可以執(zhí)行以下語句。其中,已登錄用戶數(shù)可以通過“who | wc -l”查詢,以命令替換方式進行。

Shell條件測試語句及三種if語句

0

再例如:若要判斷當前可用內(nèi)存(buffers/cache)大小,當?shù)陀?048MB時輸出具體值,可以執(zhí)行以下操作。其中“free -m”命令以MB單位輸出內(nèi)存信息。

Shell條件測試語句及三種if語句

3. 字符串比較

通常用來檢查用戶輸入、系統(tǒng)環(huán)境等是否滿足條件,在提供交互式操作的Shell腳本中,也可用來判斷用戶輸入的位置是否符合要求,常見選項如下:

Shell條件測試語句及三種if語句

例如:判斷當前系統(tǒng)的語言環(huán)境,當發(fā)現(xiàn)不是“en.US”時輸出提示信息“Not en.US”:

Shell條件測試語句及三種if語句

再例如:在Shell腳本中,經(jīng)常需要用戶輸入“yes”或“no”來確認某個任務,一下操作展示了確認交互的過程,當然,實際使用時還會根據(jù)變量“ACK”的取值分別執(zhí)行進一步的操作。

Shell條件測試語句及三種if語句

4. 邏輯測試

是判斷兩個或多個條件之間的依賴關(guān)系,當系統(tǒng)任務取決于多個不同的條件時,根據(jù)這些條件是否同時成立或只要有其中一個成立等情況,需要有一個測試的過程。常用選項如下:

&&:邏輯與,表示“而且”,只有前后兩個條件都成立時,整個測試命令的返回值才為0。使用test命令時,“&&”可改為“-a”

||:邏輯或,表示“或者”,只有前后兩個條件中一個成立,整個測試命令的返回值才為0。使用test命令時,“||”可改為“-o”

?。哼壿嫹?,表示“不”,只有當指定的條件不成立時,整個測試命令的返回值才為0。

“&&”、“||”通常也用于間隔不同的命令操作,其作用是相似得。

例如:若要判斷當前Linux系統(tǒng)的內(nèi)核版本是否大于2.4,可以執(zhí)行以下操作。

Shell條件測試語句及三種if語句

使用if條件語句

在Shell腳本中,if語句是最為常用的一種流程控制方式,用來根據(jù)特定的條件測試結(jié)果,分別執(zhí)行不同的操作(如果……那么……)

1. 單分之的if語句

if語句的“分支”指的是不同測試結(jié)果所對應的執(zhí)行語句(一條或多條)。對于單分支選擇結(jié)構(gòu),只有在“條件測試成立”時才會執(zhí)行相應的“命令序列”,否則不執(zhí)行任何操作,單分支結(jié)構(gòu)如下:

Shell條件測試語句及三種if語句

在上述語句結(jié)構(gòu)中,條件測試操作即“[ 條件表達式 ]”語句,也可以是其他可執(zhí)行的命令句;命令序列指的是一條或多條可執(zhí)行的命令行,也包括嵌套使用的if語句或其他流程控制語句。

單分支的執(zhí)行流程:首先判斷條件測試語句的結(jié)果,返回值為0,表示條件成立,則執(zhí)行then后面的命令序列,一直遇見fi結(jié)束判斷為止,繼續(xù)執(zhí)行其他腳本代碼;返回值為其他,則忽略then后面的命令序列,直接跳至fi以后執(zhí)行其他腳本代碼。

案例:

Shell條件測試語句及三種if語句

2. 雙分支的if語句

對于雙分支結(jié)構(gòu),要求針對“條件成立”、“條件不成立”兩種情況分別執(zhí)行不同命令序列。

Shell條件測試語句及三種if語句

雙分支if語句的執(zhí)行流程:首先判斷條件測試操作的結(jié)果,如果成立,則執(zhí)行then后的命令序列1,忽略else后的命令序列2,直到遇見fi結(jié)束判斷;若不成立,則忽略then及后面的命令序列1,直接跳至else后面的命令序列2,直到遇見fi結(jié)束判斷。

案例:

Shell條件測試語句及三種if語句

3. 多分支的if語句

由于if語句可以根據(jù)測試結(jié)果的成立,不成立分別執(zhí)行操作,所以能夠嵌套使用,進行多次判斷。例如:首先判斷某學生的得分是否幾個,若幾個則再次判斷是否高于90分等,格式如下:

Shell條件測試語句及三種if語句

Shell條件測試語句及三種if語句

案例:

Shell條件測試語句及三種if語句

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


網(wǎng)站題目:Shell條件測試語句及三種if語句-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://weahome.cn/article/ioieh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部