條件選擇if語句

單分支的if語句

if 判斷條件; then

條件為真的分支代碼

fi

 

    單分支if結構的執行流程:首先判斷條件測試操作的結果,如果返回值為0表示條件成立,則執行then后面的命令序列,一直到遇見fi為止表示結束,繼續執行其他腳本代碼;如果返回不為0,則忽略then后面的命令序列,直接跳至fi行以后執行其他腳本代碼。

條件選擇if語句

 腳本代碼

[root@localhost bin]# cat ifsingle.sh
#!/bin/bash
 
if [ `id -u` -eq 0 ]; then
         echo "The current is to use the administrator account."
fi

執行結果

[root@localhost bin]# ifsingle.sh
The current is to use the administrator account.

 

雙分支的if語句

 

    對于雙分支的選擇結構來說,要求針對條件成立、條件不成立兩種情況分別執行不同的操作。

 

if 判斷條件; then

條件為真的分支代碼

else

條件為假的分支代碼

fi

 

    雙分支if結構的執行流程:首先判斷條件測試操作的結果,如果條件成立,則執行then后面的命令序列1,忽略else及后面的命令序列2,直至遇見fi結束判斷;如果條件不成立,則忽略then及后面的命令序列1,直接跳至else后面的命令序列2執行。直到遇見fi結束判斷。

條件選擇if語句

 腳本代碼

[root@localhost bin]# cat checkip.sh
#!/bin/bash
# Description: Test whether or not the remote host can communication
 
read -p "Please input ip address: " ip
ping -c1 -W1 $ip &> /dev/null
if [ $? -eq 0 ]; then
         echo "Host is up"
else
         echo "Host is down"
fi

執行結果

[root@localhost bin]# checkip.sh
Please input ip address: 10.1.252.252 
Host is up
[root@localhost bin]# checkip.sh
Please input ip address: 10.1.252.22
Host is down

多分支

if 判斷條件1

then

判斷條件1為真的分支代碼

elif 判斷條件2

then

    判斷條件2為真的分支代碼

elif 判斷條件n

then

判斷條件n為真的分支代碼

else

    判斷條件n為假的分支代碼

fi

if 判斷條件1; then

判斷條件1為真的分支代碼

elif 判斷條件2; then

    判斷條件2為真的分支代碼

elif 判斷條件n; then

判斷條件n為真的分支代碼

else

    判斷條件n為假的分支代碼

fi

 

逐條件進行判斷,第一次遇為“真”條件時,執行其分支,而后結束整個if語句

多分支if結構的執行流程:首先判斷條件測試操作1的結果,如果條件1成立,則執行命令序列1,然后跳至fi結束判斷;如果條件1不成立,則繼續判斷條件測試操作2的結果,如果添加2成立,則執行命令序列2,然后跳至fi結束判斷;…..如果所有的條件都不滿足,則執行else后面地命令序列n,直到fi結束判斷。

實際上可以嵌套多個elif語句。If語句的嵌套在編寫Shell腳本是并不常用,因此多重嵌套容易使程序結構變得復雜。當確實需要使用多分支的程序結構是,建議采用case語句要更加方便。

條件選擇if語句

 腳本代碼

[root@localhost bin]# cat checkgrade.sh
#!/bin/bash
# Description:
read -p "input you grade(0-100):" grade
if [ $grade -ge 85 ] && [ $grade -le 100 ]; then
         echo "you grade is very good!"
elif [ $grade -ge 60 ] && [ $grade -le 84 ]; then
         echo "you grade is good!"
elif [ $grade -gt 100 ]; then
         echo "error! please input 0-100!"
else
         echo "you so bad!"
fi

執行結果

[root@localhost bin]# checkgrade.sh
input you grade(0-100):80
you grade is good!
[root@localhost bin]# checkgrade.sh
input you grade(0-100):50
you so bad!
[root@localhost bin]# checkgrade.sh
input you grade(0-100):98  
you grade is very good!
[root@localhost bin]# checkgrade.sh
input you grade(0-100):33
you so bad!

原創文章,作者:cyh5217,如若轉載,請注明出處:http://www.www58058.com/36012

(0)
cyh5217cyh5217
上一篇 2016-08-16
下一篇 2016-08-16

相關推薦

  • N25期–第十三周作業

    1、 建立samba共享,共享目錄為/data,要求:(描述完整的過程)  1)共享名為shared,工作組為magedu;  2)添加組develop,添加用戶gentoo,centos和ubuntu,其中gentoo和centos以develop為附加組,ubuntu不屬于develop組;密碼均為用戶名;  3)添加sam…

    Linux干貨 2017-04-05
  • Awk 高級應用

                              Awk 簡介   Awk 是一種變成語言,用于在Linux/UNIX下對文本和數據進行掃描與處理,數據可以來自標準輸入,文件 ,管道。Awk分別代表其作者的姓…

    2017-07-17
  • Javascript 裝載和執行

    一兩個月前在淘寶內網里看到一個優化Javascript代碼的競賽,發現有不少的人對Javascript的執行和裝載的基礎并不懂,所以,從那天起我就想寫一篇文章,但一直耽擱了。自上篇《瀏覽器渲染原理簡介》,正好也可以承前啟后。 首先,我想說一下Javascript的裝載和執行。通常來說,瀏覽器對于Javascript的運行有兩大特性:1)載入后馬上執行,2)執…

    Linux干貨 2016-08-15
  • 在VMware workstations中安裝CentOS-7-x86_64-Everything-1611.ISO

      對于最近在Linux學習的過程中,許多同學對CentOS系統的詳細配置還不熟悉,于是我編寫此詳細步驟供大家參考。 工具: VMware workstations; CentOS-7-x86_64-Everything-1611.iso; 準備工作:  1、先要下載一個系統鏡像centOS-7-x86_64-Everythin…

    2017-07-11
  • 進程管理

    簡述進程的相關理論與工具使用

    2017-09-09
  • 軟件包管理工具—yum命令總結

    描述: YUM: Yellowdog Update Modifier, rpm的前端程序,用來解決軟件包相關依賴性,可以在多個庫之間定位軟件包,實現查詢、安裝、升級、刪除等功能 說明: yum repository: yum repo,存儲了眾多rpm包,以及包的相關的元數據文件(放置于特定目錄repodata下) 文件服務器: ftp:// http://…

    Linux干貨 2016-08-29
欧美性久久久久