條件測試操作
test命令
測試特定表達式是否成立 當條件成立時 測試語句的返回值爲0 否則爲其他數值
格式一 test 條件表達式
格式二 [ 條件表達式 ]
文件測試
[ 操作符 文件或目錄 ]
-e 測試目錄或文件是否存在(Exist)
-d 測試是否爲目錄(Directory)
-f 測試是否問文件(File)
-r 測試當前用戶是否有權限讀取
-w 測試當前用戶是否有權限寫入
-x 測試當前用戶是否有權限執行
文件測試
整數值比較
[ 整數1 操作符 整數2 ]
-eq 等於(Equal)
-ne 不等於(Not Equal)
-gt 大於(Greater Than)
-lt 小於(Lesser Than)
-le 小於或等於(Lesser or Equal)
-ge 大於或等於(Greater or Equal)
數值比較 Linux的Shell數值比較只能比較整數
篩選取值
字符串比較
格式1 [ 字符串1 = 字符串2 ] [ 字符串1 != 字符串2]
格式2 [ -z 字符串 ]
= 字符串內容相同
!= 字符串內容不同 !表示相反
-z 字符串內容爲空
字符串比較
邏輯測試
格式1 [ 表達式1 ] 操作符 [ 表達式2 ] ...
格式2 命令1 操作符 命令2 ...
常用的測試操作符
-a或&& 邏輯與 “而且”的意思
-o或|| 邏輯或 ”或者”的意思
! 邏輯否
全真-a才爲真 全假-o才爲假
如何測試/opt/backup目錄是否存在
-e /opt/backup
查詢當前的活動進程數 並測試是否小於100
[(ps aux | wc -l) -lt 100]
如何測試是否已安裝sysstat軟件包
rpm -q 包名
if語句的結構
單分支結構 if 條件測試操作
then 命令序列
fi
雙分支結構 if 條件測試操作
then 命令序列1
else 命令序列2
fi
多分支結構 if 條件測試操作1
then 命令序列1
elif 條件測試操作2
then 命令序列2
else
命令序列
fi
雙分支結構 判斷httpd服務是否開啓
多分支結構 根據輸入的成績判斷等級
for語句的結構
for 變量名 in 取值列表
do
命令序列
done
統計1-100之和
網絡連通性測試
從IP地址列表文件中取得IP 測試主機的連通性
批量創建用戶 用戶名爲stu開頭的字符串 後面是1-50的編號 初始密碼用戶名
批量創建用戶 用戶名從文件列表中獲取 初始密碼爲123456
while語句的結構
while 條件測試操作
do
命令序列
done
統計1-100的和
猜價格
小結
sh -x顯示腳本執行過程
for、while都能批量添加用戶,兩者有哪些區別
for靠變量取值循環 while靠條件循環
for循環使用的取值列表如何獲得
靠In從文件中取值
如何避免while語句陷入死循環
使用exit結束語句
case語句的結構
case 變量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
*表示通配)
默認命令序列
esac
對服務進行操作
判斷用戶是普通用戶還是超級用戶還是系統用戶 並輸出到相應文件
nfsnobody的ID號是65534