一、語法結構
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 可以使用邏輯判斷 迴圈等語法 可以...