Shell if常用判斷條件

2021-12-29 22:33:58 字數 1627 閱讀 1921

if 判斷

之前也寫過簡單的shell指令碼,也不是轉職運維,和系統相關的工作比較少,所以不怎麼熟練。

最近由於系統總是出現各種亂七八糟的問題,也沒有人來協助,只好自己寫shell指令碼了,都是些基礎的指令碼,但由於shell的語法和通常的高階語言有些不一樣,所以還是要系統的看下常用的部分。 if語句就是很重要的乙個。

這種文章很多,只是拿來主義,如果有心得體會也會加上,小計下以後備查。

基本結構: if語句塊需要使用if結束if condition

then

statements

elif condition

then statements

else

statements

fitips:寫法上需要注意的是

if後面的判斷條件 方括號和之間的判斷語句左右各要有乙個空格(錯了好幾次了)

#####判斷字元是否相等#!/bin/bash

system=`uname -s`

if [ $system = "linux" ] #方括號內部兩邊有空格,等號兩邊也需要空格

then

echo "linux"

else

echo "other system"

fi常用型別的判斷寫法(模擬字串)1 字串判斷

str1 = str2      當兩個串有相同內容、長度時為真

str1 != str2      當串str1和str2不等時為真

-n str1        當串的長度大於0時為真(串非空)

-z str1        當串的長度為0時為真(空串)

str1         當串str1為非空時為真

2 數字的判斷

int1 -eq int2    兩數相等為真

int1 -ne int2    兩數不等為真

int1 -gt int2    int1大於int2為真

int1 -ge int2    int1大於等於int2為真

int1 -lt int2    int1小於int2為真

int1 -le int2    int1小於等於int2為真

3 檔案的判斷

-r file     使用者可讀為真

-w file     使用者可寫為真

-x file     使用者可執行為真

-f file     檔案為正規檔案為真

-d file     檔案為目錄為真

-c file     檔案為字元特殊檔案為真

-b file     檔案為塊特殊檔案為真

-s file     檔案大小非0時為真

-t file     當檔案描述符(預設為1)指定的裝置為終端時為真

4 複雜邏輯判斷

-a         與

-o       或

!       非

tips:

* -eq -ne -lt -nt只能用於整數,不適用於字串,字串等於用賦值號=

* =放在別的地方是賦值,放在if [ ] 裡就是字串等於,shell裡面沒有==的,那是c語言的等於

* 整數條件表示式,大於,小於,shell裡沒 和< ,會被當作尖括號,只有-ge,-gt,-le,lt

[參考文章](

Shell If 條件判斷

一 if的基本語法 if command then 符合該條件執行的語句 elif command then 符合該條件執行的語句 else 符合該條件執行的語句 fi二 檔案 資料夾 目錄 判斷 b file 如果 file 存在且是乙個塊特殊檔案則為真。c file 如果 file 存在且是乙個...

shell if判斷條件

a file 如果 file 存在則為真。b file 如果 file 存在且是乙個塊特殊檔案則為真。c file 如果 file 存在且是乙個字特殊檔案則為真。d file 如果 file 存在且是乙個目錄則為真。e file 如果 file 存在則為真。f file 如果 file 存在且是乙個...

shell if命令 判斷條件整理

語法結構 一行 if 1x ip x then echo abc fi 多行 if 1x ab x then echo you had enter ab elif 1x cd x then echo you had enter cd else echo you had enter unexpecte...