您好,登錄后才能下訂單哦!
單分支結(jié)構(gòu)
語(yǔ)法:
if [條件]
then
指令
fi
或
if [條件]:then
指令
fi
if單分支條件中文編程語(yǔ)法:
如果 [你有房]
那么
我就嫁給你
果如
提示:分號(hào)相當(dāng)于命令換行,上面兩種語(yǔ)法等用。
特殊寫法:if [-f "$file1"];then echo 1;if 相當(dāng)于:[if "$file1"]&& echo 1
if [ -f "$file1" ] :then
echo 1
fi
范例1:
#!/bin/bash #功能:單分支if結(jié)構(gòu)整數(shù)比較,用-lt格式例子 if [ 10 -lt 12 ] then echo "yes" fi 執(zhí)行結(jié)果: [root@XCN if]# sh test1.sh yes #提示:當(dāng)比較條件為整數(shù)數(shù)字時(shí)
范例2:使用read及腳本傳參方式如果實(shí)現(xiàn)上述整數(shù)的比較?
解答:
特別強(qiáng)調(diào):read讀入和命令行傳參是兩種輸入內(nèi)容的方法。
1)腳本傳參的方式腳本例子
#!/bin/bash if [ $1 -lt $2 ]: then echo "yes,$1 less then $2" fi 輸入結(jié)果 [root@XCN if]# sh if2.sh 1 2 yes,1 less then 2
2)單分支if判斷兩整數(shù)大小三種情況的腳本例子(以read讀入為例)
#!/bin/bash read -p "pls input two num:" a b if [ $a -lt $b ];then echo "yes,$a less than $b" exit fi if [ $a -eq $b ];then echo "yes,$a eaual $b" exit fi if [ $a -gt $b ];then echo "yes,$a greater than $b" exit fi 見證奇跡的時(shí)刻: [root@localhost shell]# sh if1.sh pls input two num:1 2 yes,1 less than 2
范例3:開發(fā)shell腳本實(shí)現(xiàn)如果/server/scipts下面存在if3.sh的內(nèi)容就輸出到屏幕
注意:如果執(zhí)行腳本后發(fā)現(xiàn)該if3.sh不存在,就自動(dòng)創(chuàng)建這個(gè)if3.sh腳本
#!/bin/bash path=/server/scripts file=if3.sh #no1 if [ ! -d $path ] then mkdir -p $path echo "$path is not exist,already created it." fi #no2 if [ ! -f $path/$file ] then touch $path/$file echo "$file is not exist,alreadt created it." exit fi #no3 echo "ls -l $path/$file" ls -l $path/$file ~ 執(zhí)行輸出: [root@localhost ~]# sh if.sh /server/scripts is not exist,already created it. if3.sh is not exist,alreadt created it.
范例4:開發(fā)腳本判斷系統(tǒng)剩余內(nèi)存大小,如果低于100M就郵件報(bào)警。
測(cè)試報(bào)警成功后加入系統(tǒng)定時(shí)任務(wù)每3分鐘執(zhí)行一次檢查。
思路:
如果去內(nèi)容,去內(nèi)存那個(gè)選項(xiàng)。
[root@ailuoli ~]# free -m|grep buffers/ |awk ' {print $NF}' 1781
2.發(fā)郵件mail,mutt。sendmail服務(wù)器要開啟
[root@ailuoli ~]# yum install sendmail [root@ailuoli ~]# /etc/init.d/sendmail start Starting sendmail: [ OK ] Starting sm-client: [ OK ] [root@ailuoli ~]#echo "xcn"|mail -s "title" 995345781@qq.com
3.編寫腳本
#!/bin/bash userd_mem=`free -m|grep buffers/ |awk ' {print $NF}'` if [ $userd_mem -lt 100 ] then echo "menm is not enough,$userd_men."|mail -s "mem warning $(date +%F)" 995345781@qq.com fi
三分鐘監(jiān)測(cè)一次:
*/3 * * * * /bin/bash /mem.sh
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。