第七章 if條件語句的知識和實踐(郵件報警)
阿新 • • 發佈:2018-02-02
current num 任務 bar == 數字 tee centos dev
#!/bin/bash
read num
read num1
if [ -z "$num" ]; then
echo "plz input currt arges"
exit 4
fi
fi
expr $num + 4 > /dev/null
aa=$?
expr $num1 + 4 > /dev/null
bb=$?
if [ $aa -eq 0 -a $bb -eq 0 ]; then
if [ $num -lt $num1 ]; then
echo ""$num"<"$num1""
else
echo ""$num">"$num1""
fi
else
echo "this is a bad int"
fi
範例7-2:
開發一個腳本判斷系統剩余內存的大小,如果低於100MB,就郵件報警給系統管理員,並將腳本加入系統定時任務,即每3分鐘執行一次。
首先搞定郵件服務,我的centos 7上面沒有mail包,所以就下載一個rpm的mail包安裝,下來時編輯配置文件:
[root@localhost ~]# tail -n 7 /etc/mail.rc set from=***@163.com set smtp=smtp.163.com set smtp-auth-user=*** set smtp-auth-password=*** set smtp-auth=login [root@localhost ~]# 然後測試郵件服務器是否正常: [root@localhost ~]# echo "oldboy" | mail -s "cpu" ***@163.com #好了
#!/bin/bash men=`free -m | awk 'NR==3 {print $NF}'` chars="current memory is $men" if [ $men -lt 3000 ]; then echo "$chars" | tee /tmp/messages.txt #打印並且保存在文件中 mail -s "`date +%F-%T`-men" [email protected] < /tmp/messages.txt fi
範例 7-3:分別使用read讀入及腳本傳參的方式比較兩個數字的大小。把前面涉及到的是否為整數以及傳參的個數是否按照要求的。
read num
read num1
if [ -z "$num" ]; then
echo "plz input currt arges"
exit 4
fi
if [ -z "$num1" ]; then #發現這兩個不能放一起使用-a連接起來判斷,會出現問題。
echo "plz input currt arges"
exit 5fi
expr $num + 4 > /dev/null
aa=$?
expr $num1 + 4 > /dev/null
bb=$?
if [ $aa -eq 0 -a $bb -eq 0 ]; then
echo ""$num"<"$num1""
else
echo ""$num">"$num1""
fi
else
echo "this is a bad int"
fi
多分支進行判斷
第七章 if條件語句的知識和實踐(郵件報警)