while循環

語法 while 條件; do … ; done
案例1
當系統的負載,大於10時,發封郵件給指定賬戶。

#!/bin/bash
while :                                                                    #:表示死循環的意思。就是真,或者1,或者true,都可以
do
    load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1`      #:會將系統的負載,負載到load的變量裏。
    if [ $load -gt 10 ]                                                    #:如果load的值大於10的時候
    then
        #/usr/local/sbin/mail.py [email protected] "主題" "內容"               #之前配置zabbix的發送郵件的腳本
        top|mail -s "load is high: $load" [email protected]
    fi
    sleep 30                                                               #休眠30s,30s之後循環執行。
done                                                                       #固定格式

w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1 #查詢系統負載。
w,表示查看負載
head -1 表示第一行
awk -F 'load average: ':指定分隔符爲'load average: '
'{print $2}'
cut -d. 表示再做分隔,以.作爲分隔符,
while循環
while循環
while循環
while循環案例2
#!/bin/bash
while :
do
read -p "Please input a number: " n
if [ -z "$n" ] #-z,表示爲空時
then
echo "你需要輸入東西" #打印,你需要輸入東西
continue #表示繼續,繼續循環一遍上面的語句,後面的就不會執行了,如果已經獲取到數據,就會執行下面的。
fi
n1=echo $n|sed 's/[0-9]//g'
if [ -n "$n1" ]
then
echo "你只能輸入一個純數字"
continue #表示繼續,繼續循環一遍上面的語句(從頭開始),後面的就不會執行了,如果獲取的是純數字,
fi
break #break,表示退出這個腳本循環,指的是while、do、done的循環。
done
echo $n #打印出n的值

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章