shell中IF的用法介紹

2022-08-22 11:45:09 字數 2209 閱讀 4261

一、語法結構

if [ condition ]

then 

statements 

[elif condition 

then statements. ..] 

[else 

statements ] 

fi

二、說明

(1)[ condition ] (注意condition前後要有空格)

非空返回true,可使用$?驗證(0為true,>1為false) 如:[ hadoop ] 返回true

空返回false 如:[  ] 返回false

(2)[ condition ] && echo ok ||echo notok 可以多條件,條件滿足,執行後面的語句

三、整數比較

-eq 等於,如:if [ "$a" -eq "$b" ]

-ne 不等於,如:if [ "$a" -ne "$b" ]

-gt 大於,如:if [ "$a" -gt "$b" ]

-ge 大於等於,如:if [ "$a" -ge "$b" ]

-lt 小於,如:if [ "$a" -lt "$b" ]

-le 小於等於,如:if [ "$a" -le "$b" ]

大於(需要雙括號),如:(("$a" > "$b"))

>= 大於等於(需要雙括號),如:(("$a" >= "$b"))

四、字串比較

= 等於,如:if [ "$a" = "$b" ]

== 等於,如:if [ "$a" == "$b" ],與=等價

!= 不等於,如:if [ "$a" != "$b" ]

這個操作符將在結構中使用模式匹配.

大於,在ascii字母順序下.如:

if [[ "$a" > "$b" ]]

if [ "$a" \> "$b" ]

注意:在結構中">"需要被轉義.

-z 字串為"null".就是長度為0.

-n 字串不為"null"

五、許可權判斷

-r	有讀的許可權

-w 有寫的許可權

-x 有執行的許可權

六、檔案系統型別判斷

-f	檔案存在並且是乙個常規的檔案

-s 檔案存在且不為空

-d 檔案存在並是乙個目錄

-b 檔案存在並且是乙個塊裝置

-l 檔案存在並且是乙個軟連線

例項1 特權使用者的高記憶體占用查詢

#!/bin/bash

if [ root == `awk -f: '$3==0' /etc/passwd ` ];then #>字元判斷

echo "privileged user is root" #>判斷特權使用者是否只有root

echo "***********************************/n*****=/n="

else

echo "privileged users are not root"

exit 1

fips aux > 123.txt

if [ $? == 0 ] ;then

echo "high memory occupancy analysis"

echo "***********************************/n*****=/n="

awk '$4>="0.3"' 123.txt #>這個$4的點自定義,這裡虛擬機器沒吃記憶體厲害應用

echo "---------------------end----------------"

exit 1

fi

案例2 遠端登入的使用者的詳情查詢

[root@server 桌面]# cat 123.sh 

#!/bin/bash

lsof -i :ssh |grep -v sshd > 123.txt

if [ $? -eq 0 ];then

echo "display of users without remote login "

cat 123.txt

exit 1

else

echo "users without remote login"

fi

shell中if的用法

一.概要 1.if與 之間要有空格 2.與判斷條件之間也必須有空格 3.與 之間不能有空格 二.對字串的判斷 1.if str1 str2 then fi 當兩個字串相同時返回真 2.if str1 str2 then fi 當兩個字串不相等時返回真 3.if n str1 then fi 當字串的...

shell中if的用法

出處 一.概要 1.if與 之間要有空格 2.與判斷條件之間也必須有空格 3.與 之間不能有空格 二.對字串的判斷 1.if str1 str2 then fi 當兩個字串相同時返回真 2.if str1 str2 then fi 當兩個字串不相等時返回真 3.if n str1 then fi 當...

shell指令碼介紹,date用法

十六周二次課 2月5日 20.1 shell指令碼介紹 20.2 shell指令碼結構和執行 20.3 date命令用法 20.4 shell指令碼中的變數 什麼是shell shell是一種指令碼語言 aming linux blog.lishiming.net 可以使用邏輯判斷 迴圈等語法 可以...