while語法命令


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 }


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM