-eq 等於
-ne 不等於
-gt 大於
-lt 小於
-le 小於或等於
-ge 大於或等於
-z 空串
= 兩個字符相等
!= 兩個字符不相等
-n 非空串
字符串通常用來檢查用戶輸入,系統環境是否滿足條件,在提供交互式操作的shell腳本中也可以判斷用戶輸入位置參數是否符合要求,字符串的常用操作如下:
文檔比較運算符:
-e filename 假如filenanme存在,則爲真
-d filename 假如filename爲目錄,則爲真
-f filename 假如filename爲常規文檔,則爲真
-L filename 假如filename爲符號鏈接,則爲真
-r filename 假如filename可讀,則爲真
-w filename 假如filename可寫,則爲真
-x filename 假如filename可執行,則爲真
if 語句是循環語句中一種又稱爲控制語句,通過制定條件進行判斷執行,只有條件成立的時候纔會執行相應的代碼,否則不會執行任何操作。
*單分支if語句格式:
if 條件測試操作
then
命令序列
fi
例子1
vim a.txt
#!/bin/bash
if
[ ! -d /media/cdrom ]
thenk
mkdir -p /media/cdrom
fi
wq!
sh -x a.txt x選項爲查看調試過程
例子2
vim b.txt
#!/bin/bash
NUM=100
if (($NUM > 4));then
echo "this num is $NUM greater 4!"
fi
wq!
sh -x b.txt
*雙分支if語句格式:
雙分支的選擇結果,要求針對條件成立,條件不成立兩種情況分別執行不同的操作
語法結構
if 條件測試操作
then ( 條件成立執行)
命令序列1
else(否則,條件不成立,則執行)
命令序列2
fi
例子3
vim c.txt
#!/bin/bash
ping -c 3 -i 0.2 -w 3 $1
if
[ $? -eq 0 ]
then
echo "ip is up"
else
echo "ip is down"
fi
sh -x c.txt 172.0.0.1
例子4
vim b.txt
#!/bin/bash
word=$1
grep ^$1$" /usr/share/dict/words -q
if [ $? -eq 0 ];then
echo "word is a dictionary word"
else
echo "word is not a dictionary word"
fi