456成人影院在线观看_亚洲a毛片_日韩9999_伊人网老司机_一本免费视频_最近高清日本免费

IT之道-艾銻知道

您當(dāng)前位置: 主頁 > 資訊動(dòng)態(tài) > 艾銻分享 >

服務(wù)器維護(hù)Shell腳本的條件測試和if條件語句使用


2020-07-02 19:24 作者:admin

服務(wù)器維護(hù)Shell腳本的條件測試和if條件語句使用

服務(wù)器維護(hù)小知識一、條件測試操作

要使Shell腳本程序具備一定的“智能”,面臨的第一個(gè)問題就是如何區(qū)分不同的情況以確定執(zhí)行何種操作。Shell環(huán)境根據(jù)命令執(zhí)行后的返回狀態(tài)值(¥?)來判斷是否執(zhí)行成功,當(dāng)返回值為0時(shí)表示成功,否則(非0值)表示失敗或異常。使用專門的測試工具——test命令,可以對特定條件進(jìn)行測試,并根據(jù)返回值來判斷條件是否成立(返回值為0表示條件成立)。
使用test測試命令時(shí),包括以下兩種形式:
test 條件表達(dá)式
[ 條件表達(dá)式 ]
這兩種方式的作用完全相同,但通常后一種形式更為常用,需要注意的是,方括號“[“ 或 ”]”與條件表達(dá)式之間需要至少一個(gè)空格進(jìn)行分隔。

1、文件測試:

· -d:測試是否為目錄(Directory);
· -e:測試文件或目錄是否存在(Exist);
· -f:測試是否為文件(File);
· -r:測試當(dāng)前用戶是否有權(quán)限讀取(Read);
· -w:測試當(dāng)前用戶是否有權(quán)限寫入(Write);
· -x:測試是否設(shè)置有可執(zhí)行(Excute)權(quán)限;
執(zhí)行條件測試操作以后,通過預(yù)定義變量$?可以獲得測試命令的返回狀態(tài)值,從而判斷該條件是否成立。例如,執(zhí)行以下操作可以測試目錄/media/是否存在,如果返回值$?為0,表示存在此目錄,否則表示不存在或者雖然存在但不是目錄。
[root@CentOS01 ~]# test -d /boot      <!--測試目錄是否存在-->
[root@centos01 ~]# echo $?           <!--查看前一命令的返回值-->
0                      <!--返回0表示條件成立-->
若測試的條件不成立,則測試操作的返回值將不為0(通常為1).
[root@centos01 ~]# test -d /ertec        <!--測試目錄是否存在-->
[root@centos01 ~]# echo $?         <!--查看前一命令的返回值-->
1         <!--返回1表示條件不成立-->

2、整數(shù)值比較:

· -eq:第一個(gè)數(shù)等于(Equal)第二個(gè)數(shù);
· -ne:第一個(gè)數(shù)不等于(Not Equal)第二個(gè)數(shù);
· -gt:第一個(gè)數(shù)大于(Greater Than)第二個(gè)數(shù);
· -lt:第一個(gè)數(shù)小于(Lesser Than)第二個(gè)數(shù);
· -le:第一個(gè)數(shù)小于或等于(Lesser or Equal)第二個(gè)數(shù);
· -ge:第一個(gè)數(shù)大于或等于(Greater or Equal)第二個(gè)數(shù);
整數(shù)值比較在Shell腳本編寫中的應(yīng)用較多。例如,用來判斷已登錄用戶數(shù)量、開啟進(jìn)程數(shù)、磁盤使用率是否超標(biāo),以及軟件版本號是否符號要求等。實(shí)際 使用時(shí),往往會通過變量引用、命令替換等方式來獲取一個(gè)數(shù)值。

3、字符串比較:

· =:第一個(gè)字符串與第二個(gè)字符串相同。
· !=:第一個(gè)字符串與第二個(gè)字符串不相同,其中 “ !”表示取反。
· -z:檢查字符串是否為空,對于未定義或賦予空值的變量將是為空串。
[root@centos01 ~]# a=1
[root@centos01 ~]# b=2
[root@centos01 ~]# [ $a = $b ] && echo "yes"  <!--當(dāng)1等于2顯示yes,不等于顯示為空-->
            <!--顯示為空-->
[root@centos01 ~]# a=1
[root@centos01 ~]# b=2
[root@centos01 ~]# [ $a != $b ] && echo "yes"  <!--當(dāng)1不等于2顯示yes,否則顯示為空-->
yes        <!--1不等于2,顯示yes-->

4、邏輯測試:

· &&:邏輯與,表示“而且”,只有當(dāng)前后兩個(gè)條件都成立時(shí),整個(gè)測試命令的返回值才為0(結(jié)果成立),使用test命令測試時(shí),“&&”可以使用“-a”代替。
· ||:邏輯或,表示“或者”,只要前后兩個(gè)條件有一個(gè)成立,整個(gè)測試命令返回的值即為0(結(jié)果成立)。使用test命令測試時(shí)可以使用“-o”代替。
· !:邏輯否,表示“不”,只有當(dāng)條件不成立時(shí),整個(gè)測試命令返回的值才為0(結(jié)果成立)。
示例如下:
[root@centos01 ~]# a=100
[root@centos01 ~]# [ $a = 100 ] && [ $a != 50 ] && echo "yes" <!--使用邏輯與運(yùn)算,兩個(gè)條件為真顯示yes-->
yes      <!--兩個(gè)條件為真,顯示yes-->
[root@centos01 ~]# c=100
[root@centos01 ~]# [ $a = 100 ] || [ $a -ge 50 ] && echo "yes"   <!--使用邏輯與運(yùn)算,兩個(gè)條件一個(gè)為真顯示為yes-->
yes     <!--兩個(gè)條件一個(gè)為真,顯示yes-->

服務(wù)器維護(hù)小知識二、使用if條件語句

1、單分支if語句

if語句的“分支”指的是不同測試結(jié)果所對應(yīng)的執(zhí)行語句(一條或多條)。對于單分支的選擇結(jié)構(gòu),只有在“條件成立”時(shí)才會執(zhí)行相應(yīng)的代碼,否則不會執(zhí)行任何操作。單分支if語句的語法格式如下所示:

單分支if語句示例:
[root@centos01 ~]# cd /usr/src/ppp     <!--驗(yàn)證目錄是否存在-->
-bash: cd: /usr/src/ppp: 沒有那個(gè)文件或目錄  <!--ppp目錄不存在-->
[root@centos01 ~]# vim if_dan.sh  <!--編寫創(chuàng)建/usr/src/ppp目錄的腳本-->
#!/bin/bash           <!--腳本聲明-->
mount="/usr/src/ppp"       <!--定義一個(gè)變量-->
if [ ! -d $mount ]            <!--測試條件-->
then                  <!--如果滿足則執(zhí)行下面的命令-->
        mkdir -p $mount             
fi             <!--if語句結(jié)束-->
[root@centos01 ~]# chmod +x if_dan.sh       <!--添加權(quán)限-->
[root@centos01 ~]# ./if_dan.sh         <!--執(zhí)行腳本自動(dòng)創(chuàng)建-->
[root@centos01 ~]# cd /usr/src/ppp/ <!--查看目錄是否創(chuàng)建成功-->
[root@centos01 ppp]# ls

2、雙分支if語句

對于雙分支的選擇結(jié)構(gòu),要求針對“條件成立” “條件不成立”兩種情況分別執(zhí)行不同的操作。雙分支if語句的語法格式如下所示:

雙分支if語句示例:
[root@centos01 ~]# vim if_shuang.sh <!--編寫腳本測試網(wǎng)絡(luò)連通性-->
#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &> /dev/null <!--ping 3次,間隔0.2秒,超時(shí)3秒,$1為位置變量-->
if [ $? -eq 0 ]         <!--測試條件為前一條的命令執(zhí)行成功-->
then              <!--如果成功,則執(zhí)行以下命令-->
    echo "Host:$1 is UP!!!"
else                <!--若不成功,則執(zhí)行以下命令-->
    echo "Host:$1 is DOWN!!!"
fi     <!--if語句結(jié)束-->
[root@centos01 ~]# chmod +x if_shuang.sh        <!--添加執(zhí)行權(quán)限-->
[root@centos01 ~]# ./if_shuang.sh 192.168.100.10      <!--使用腳本測試100.10網(wǎng)絡(luò)是否通信-->
Host:192.168.100.10 is UP!!!     <!--UP證明這臺主機(jī)是開機(jī)狀態(tài)-->
[root@centos01 ~]# ./if_shuang.sh 192.168.100.103  <!--使用腳本 測試100.103網(wǎng)絡(luò)是否通信-->
Host:192.168.100.103 is DOWN!!!           <!--DOWN證明這臺主機(jī)是關(guān)機(jī)狀態(tài)-->

3、多分支if語句

由于if語句可以根據(jù)測試結(jié)果的成立、不成立分別執(zhí)行操作,所有能夠嵌套使用,進(jìn)行多次判斷。例如,首先判斷某學(xué)生的得分是否及格,若及格則再次判斷是否高于90分等。多分支if語句的語法格式如下:

多分支if語句示例:
[root@centos01 ~]# vim if_duo.sh    <!--編寫腳本測試學(xué)生成績-->
#!/bin/bash
read -p "請輸入考試成績:" insert
if [ $insert -ge 85 ] && [ $insert -le 100 ]   <!--85~100分,優(yōu)秀-->
   then
        echo "恭喜您考試成績?yōu)閮?yōu)秀!!!"
elif [ $insert -ge 70 ] && [ $insert -le 84 ]  <!--70~84分,合格-->
   then
        echo "恭喜您考試成績?yōu)楹细瘢。。?quot;
else          <!--其他分?jǐn)?shù),不合格-->
        echo "很遺憾您考試成績可以收拾收拾回家種苞米了!!!"
fi           <!--if語句結(jié)束-->
[root@centos01 ~]# chmod +x if_duo.sh     <!--添加執(zhí)行權(quán)限-->
[root@centos01 ~]# ./if_duo.sh    <!--運(yùn)行腳本-->
請輸入考試成績:94        <!--94分優(yōu)秀-->
恭喜您考試成績?yōu)閮?yōu)秀!!!
[root@centos01 ~]# ./if_duo.sh
請輸入考試成績:82
恭喜您考試成績?yōu)楹细瘢。。?br /> [root@centos01 ~]# ./if_duo.sh
請輸入考試成績:71
恭喜您考試成績?yōu)楹细瘢。。?br /> [root@centos01 ~]# ./if_duo.sh
請輸入考試成績:32
 
IT運(yùn)維  我們選擇北京艾銻無限
以上文章由北京艾銻無限科技發(fā)展有限公司整理
 

相關(guān)文章

IT外包服務(wù)
二維碼 關(guān)閉
主站蜘蛛池模板: 粉嫩老牛aⅴ一区二区三区_a级毛片免费网站_粉嫩av一区二区三区免费观看_俄罗斯粗大猛烈18P_九色国产在线_亚洲欧洲天堂_一区二区三区四区在线视频_国产成人久久av免费高清蜜臀 | 久久日韩_日韩一区免费视频_国产精品不卡在线播放_亚洲男同gay在线观看_国产精品视频精品_波多野结衣中文AV无码专区_性色av蜜臀av色欲av_久久夜色精品国产www | japanese国产乱在线播放_国产人成亚洲第一网站在线播放_中文字幕久久久久一区_欧美jizz18hd性欧美_日日干b_中文字幕成人av_色夜av_国产精品美女www视频 | 午夜黄大色黄大片美女_中文字幕第三区_国产原创av中文在线观看_亚洲理论中文字幕_色综合久久久无码中文字幕波多_中文字幕AV一区乱码_污污网站国产精品白丝袜_丨国产丨调教丨91丨 | 操大爷影院_免费黄色片视频_99热手机在线_日本在线综合_精品免费二区三区三区高中清不卡_精品91在线_2021全国产精品网站_亚洲男人第一无码AV网 | 国产福利二区_特大巨黑吊xxx_日韩国产高清一区二区_00271最新网站地址一_国产字幕中文_精品国产麻豆_欧美日韩人成视频在线播放_亚洲欧美精品国产一级在线 | 国产亚色_色呦呦国产精品_性淫视频_欧美日韩高清一区二区三区_国产v综合v亚洲欧美久久_精品一区二区毛片_天天爽夜夜爱_久久6热最新地址 | 国产一二区av_精品久久香蕉国产线看观看亚洲_91少妇香蕉久久精_国产成人综合亚洲欧美_中文字幕av久久人妻蜜桃臀_亚洲专区在线播放_欧美一级片在线观看_欧洲黑白配一二三四区 | 熟妇人妻AV中文字幕老熟妇_成人18毛片_av基地网_国产区视频一区_天天爽夜夜爽人人爽QC_欧美一级淫片在线观看_中文字幕精品久久久_丰满五十路熟女正在播放 | 色欲aⅴ亚洲情无码AV_欧美喷潮久久久XXXXX_国产精品高潮呻吟久久av黑人_亚洲AV无码专区亚洲AV网站_姑娘第7集在线观看_国产成人精选视频在线观看_91视频在线视频_亚洲伦理一区 | 人人妻人人做人人爽_天天操天天草_少妇小莹的yin荡生活下视频_久草老司机_成人国产一区二区_天天天天天天天天操_国产娱乐凹凸视觉盛宴在线视频_亚洲vs天堂 | 午夜影院一级_97人妻人人做人碰人人添_亚洲欧美一级久久精品国产特黄_在线欧美_国产色视频一区二区三区_香蕉影院在线观看_亚洲经典国产欧美_九九在线中文字幕无码 | 91沈先生在线观看高清_中文精品一卡2卡3卡4卡国色_麻豆九九九_曰韩无码二三区中文字幕_久久国产精品免费专区_又色又爽又高潮免费视频观看_91狼人社区_无套在线观看 | 色综合天天综合网国产成人网_手机看黄AV免费网址_久久人人97超碰精品_国产精品一区二区a_日韩亚洲国产精品_日韩人妻无码精品久久久不卡_yy111111少妇影院免费_在线观看国产色视频网站 | 日本成人三区_阿公抱着我边摸边吃奶视频_欧美黄色三级大片_国内盗摄视频一区二区三区_欧美美女一区二区_欧美成人黄色片_高清国产一区二区三区在线_日本免费观看视频 | 精品美女久久久久_高清视频一区二区_亚洲s色大片在线观看_欧美成年人在线观看_亚洲精品福利视频_性猛交xxxxx按摩欧美_这里只有精品免费_国产黄频免费高清视频 | 成年午夜无码AV片在线观看_狠狠躁日日躁狂躁夜夜躁av_精品国产九九_久综合网_91爱网_天天色天天_japanese教师中文字幕_柠檬导航在线 | 久久久久久久美女_国产A级护士毛片_国产亚洲精品久久久999密壂_欧美日韩免费在线观看_日韩一级片免费视频_国产精品久久久久久婷婷动漫_国产在线精品免费_久久在现视频 | 依人在线视频_亚洲精品久久久久久久_一本久久A精品一区二区_中国一级片在线播放_精品特级毛片_九九视频在线观看视频6_成年日韩免费大片黄在线观看_男人插女人的免费视频 | 7777日本精品一区二区三区_在线精品国产欧美_人妻无码αv中文字幕久久_精品999www_午夜精品区_视频免费一区_蜜桃成人免费视频在线播放_黑人巨大两根一起挤进交换 | 一级久久久_国产真人做爰免费视频_久久精品国产亚洲aⅴ瑜伽_国产美女爆乳呻吟视频_国产人成久久久精品_日韩精品无码久久一区二区三_欧美亚洲国产精品久久高清_成人综合久久综合 | 澳门久久精品_av免费播放网站_超碰99久久_亚洲高清成人_成人午夜网站_一级免费大片_成人看片在线观看_亚洲AV日韩AV在线观看 | 国产激情视频网站_国产A级毛片色咪味_成人在线观看一区二区三区_极品粉嫩嫩模大尺度无码_亚洲国产精品一区二区久久亚洲午夜_亚洲男人的天堂在线_国产精品推荐天天看天天爽_麻豆视传媒 | 在线毛片网_xxxx交换夫妇com1_亚洲一区中文日韩_a级一级毛片_最新免费av_91热热_久久成人精品视频_久久婷婷五月综合色国产免费观看 | 欧美成人毛片_日本精品免费_很黄很爽的视频网站_91午夜免费视频_5060午夜一级_日本3级片_日本a级影片_日本中文字幕精品 | 国产又黄又爽胸又大免费视频_日日干夜夜爽_女人和男人视频网站_97中文字幕第二十二页_亚洲第一网站男人都懂_女人夜夜春高潮爽A∨片传媒_精品一卡2卡三卡4卡免费网站_亚洲精品久久AV无码蜜桃第1集 | 芭乐草永久视频在线观看_h网站久久久_亚洲激情小视频_日本一本一道高清无_女人被爽到呻吟GIF动态图_男女插插免费视频_天天爱天天射天天干_国产免费久久久久 | 一区二区三区日本久久久_日本老妇xxxx_国产成人动漫_天天干天天操天天做_国产99午夜精品一区二区三区_中文字幕人妻丝袜成熟乱_亚洲中文字幕一区二区精品_国产高清在线精品二区 | 久久久久久国产精品免费_国产69精品久久久久乱码韩国_jizz国产免费观看_国内一级黄色大片_爱爱久久_日本激情网_超碰人人在线_51午夜精品视频 狼群社区WWW在线中文_精品国偷自产在线视频_人妻被中出不敢呻吟A片视频_99久久精品国产网站_九九在线视频_国产h片在线观看_国产美女被遭强高潮免费_欧洲vodafone精品性 | 91中文国产_天地争霸美猴王在线观看_国产福利视频一区_日韩在线免费播放_曰韩不卡视频_99久久综合国产精品二区国产_日本精品区_JIZZ成熟少妇 www.97国产_在线成人毛片_欧美肥婆丰满bbw_18禁勿入午夜网站入口_欧美一级一区二区三区_wwwxx黄色_午夜精品免费看_岛国一区二区三区 | 欧美激情第1页_欧美506070老妇乱子伦_东南亚一级毛片_午夜嘿咻_久久图库99图库_精品国产人妻一区二区三区_色夜影院_欧美另类一二三四 | 福利社午夜影院_婷婷色怡春院_精品国产肉丝袜久久_好紧好滑好湿好爽免费视频_久日av_9的国产精选久久_japan凌虐bdsm日本_超碰97人人做人人爱少妇 | 毛片免费视频在线观看_69久久久久久_少妇CHINA中国人妻VIDEO_国产精品国产自产拍高清_在公车上拨开内裤进入毛片_瑟瑟综合网_成人影院在线视频_国产精华最好的产品入口 | 日韩区视频_天堂中文视频在线_草草久久久_斗破苍穹年番免费观看动漫高清_国产BBAAAAA片_亚洲成AV人影院在线观看网_91免费版成人_欧美欲妇xxxxx | 欧产日产国产精品98_在线精品观看国产_av大片网址_亚洲激情一级片_福利视频区_99久久久无码国产精品9_久草婷婷_偷拍自拍第二页 | 国产精品亚洲欧美卡通动漫_午夜影院一区二区_美女黄区_人人草人_自拍私拍网友真实视频_www嫩草_久久久久91_精品视频www | 91麻豆国产福利精品_992tv精品视频tv在线观看_婷婷久久精品_激情内射亚洲一区二区三区爱妻_狠狠五月激情六月丁香_亚州av在线_亚洲avav在线天堂_国产精品粉嫩jk国产呦系列 | 精品一区二区三区日本_亚洲色精品VR一区二区_91啪在线观看国产在线_久草在线资源观看_乱子伦xxxx_成人性生交免费大片2_国产精品久久久久久久久粉嫩_国产肥老妇视频 | 久久国内_亚洲免费人成视频观看_免费一区区三区四区_国产日本在线_精品国产一区二区三区2021_国产一级特黄毛片在线毛片_亚洲国产精品成人av_波多野结衣系列18部无码观看a | 小姨在线_亚洲V国产V天堂A无码二区_囯产精品久久久久久久久久妞妞_国产三级欧美三级_日韩一区二区国产_一级黄色免费观看_免费做人爱高潮1000视频_国产情侣无套精品视频 | 91jq激情_国产在线91精品入口首页_国产一区二区三区乱码在线观看_91国在线高清视频_日本一区二区免费在线观看_色综合天天综合网国产成人综合天_天天操中文字幕_国产视频色 |