while語法命令

while循環shell

vwhile CONDITION; do bash

 循環體  網絡

 done測試

vCONDITION:循環控制條件;進入循環以前,先作一次判 斷;每一次循環以後會再次作判斷;條件爲「true」,則執行 一次循環;直到條件測試狀態爲「false」終止循環 v所以:CONDTION通常應該有循環控制變量;而此變量的值 會在循環體不斷地被修正 v進入條件:CONDITION爲trueui

v退出條件:CONDITION爲falsespa

 

 

監控程序 是否在線。上面這圖是監控http服務是否 開啓。3d

 

Ss -nt 監控網絡code

 

監控網絡以後查看不良記錄,是否提出禁用部分超額ip。裏面的num 和ip 都是變量,經過空格隔開。    blog

 

若是不知足這個條件就進入60秒休眠狀態,就什麼都不操做,等待下一次運行ip

 

這是被禁用的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 }
相關文章
相關標籤/搜索