一:條件測試bash
1. 語法:測試
test 條件表達式 或 [ 條件表達式 ]spa
2.文件測試:字符串
-d:測試是否爲目錄test
-f:測試是否爲文件權限
-e:測試目錄或文件是否存在語法
-r:測試當前用戶是否有讀取權im
-w:測試當前用戶是否有寫入權限腳本
-x:測試當前用戶是否有執行權限hosts
例:測試/etc/hosts文件是否存在.如圖
2.數值比較:
-eq:相等
-ne:不相同
-le:小於等於
-ge:大於等於
-gt:大於
-lt:小於
例:如圖
4.字符串比較:
=:第一個字符串和第二個字符串相等
!=:第一個字符串和第二個字符串不相等
-z:檢查字符串是否爲空
例:如圖
5.邏輯測試:
&&:邏輯與,表示先後2個條件都成立時,測試命令返回值爲0(結果成立)
||:邏輯或的意思,表示先後2個條件有其中一個知足條件時,測試命令返回值爲0(結果成立)
!:邏輯否,當條件不成立時,測試命令返回值爲0(結果成立)
例如圖:
二:if條件語句
1.單分支if語句:只在"條件成立"才執行相應的代碼操做,不然不作任何操做.
語法:
if 條件測試操做
then
命令序列
fi
例如:編寫個腳本,測試系統中是否有/media/cdrom這個目錄,若是沒有則建立.
腳本以下:
#!/bin/bash
mulu="/media/cdrom"
if [ ! -d $mulu ] ; then
mkdir -p $mulu
fi
2.多分支if語句:針對單分支條件不成立時,執行另外一個操做.
語法
if 條件測試操做
then //條件成立執行命令序列1
命令序列1
else //條件不成立則執行命令序列2
命令序列2
fi
例:編寫一個連通性測試小腳本.根據ping結果顯示不一樣的提示,成功顯示chenggong 失敗顯示shibai.以下:
#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &> /dev/null //此操做不顯示在屏幕上
if [ $? -eq 0 ] //上面條件成立則運行下面命令
then
echo "chenggong"
else //不成立則運行下面的命令
echo "shibai"
fi
3.多分支if語句:對多個互斥的條件執行不一樣的操做.
語法:
if 條件測試操做1
then
命令序列1
elif
then
命令序列2
else
命令序列3
fi
例:編寫1個成績小腳本,90-100顯示優秀,70-80顯示通常,其餘不及格.如
#!/bin/bash
read -p "請輸入你的成績" chengji
if [ $chengji -ge 90 ] && [ $chengji -le 100 ]
then
echo "你的成績很優秀"
elif [ $chengji -ge 70 ] && [ $chengji -lt 90 ]
then
echo "你的成績通常"
else
echo"你的成績不級合格"
fi