while循環
vwhile CONDITION; do
循環體
done
vCONDITION:循環控制條件;進入循環之前,先做一次判 斷;每一次循環之后會再次做判斷;條件為“true”,則執行 一次循環;直到條件測試狀態為“false”終止循環 v因此:CONDTION一般應該有循環控制變量;而此變量的值 會在循環體不斷地被修正 v進入條件:CONDITION為true
v退出條件:CONDITION為false
監控程序 是否在線。上面這圖是監控http服務是否 開啟。

Ss -nt 監控網絡

監控網絡之后查看不良記錄,是否提出禁用部分超額ip。里面的num 和ip 都是變量,通過空格隔開。

如果不滿足這個條件就進入60秒休眠狀態,就什么都不操作,等待下一次運行

這是被禁用的IP。

解除被禁用的ip。

顯示 鏈接失敗的ip。
While 是運行判斷正確無限循環。
特殊用法
vwhile循環的特殊用法(遍歷文件的每一行):
while read line; do
循環體
創建無限循環
vwhile true; do

done < /PATH/FROM/SOMEFILE
v雙小括號方法,即((…))格式,也可以用於算術運算
v雙小括號方法也可以使bash Shell實現C語言風格的變量操作
I=10
((I++))
計算1到10的和
i=1 sum=0 while ((i<=10));do let sum+=i let ++i done echo $sum
讀取文件
經典的用法是搭配重定向輸入,讀取文件的內容。
打印出使用bash的用戶
while read line;do bashuser=`echo $line | awk -F: '{print $1,$NF}' | grep 'bash' | awk '{print $1}'` #jugement Bashuser is null or not and print the user who use bash shell if [ ! -z $bashuser ];then echo "$bashuser" fi done < "/etc/passwd"
通過管道傳遞給{}(同樣適用於其他語句)
通過管道把命令組丟給{}
打印出使用bash的用戶
cat /etc/passwd | {
while read line;do #use if statement jugement bash shell user and print it if [ "`echo $line | awk -F: '{print $NF}'`" == "/bin/bash" ];then bashuser=`echo $line | awk -F: '{print $1}'` echo "$bashuser" fi done }
