shell條件判斷式

來源:互聯網
上載者:User
條件判斷式

只要講到『程式』的話,那麼條件判斷式,亦即是『 if then 』這種判別式肯定一定要學習的! 因為很多時候,我們都必須要依據某些資料來判斷程式該如何進行。

if .... then

這個 if .... then 是最常見的條件判斷式了~簡單的說,就是當符合某個條件判斷的時候, 就予以進行某項工作就是了。這個 if ... then 的判斷還有多層次的情況!我們分別介紹如下:

 

單層、簡單條件判斷式

如果你只有一個判斷式要進行,那麼我們可以簡單的這樣看:

if [ 條件判斷式 ]; then    當條件判斷式成立時,可以進行的命令工作內容;fi   <==將 if 反過來寫,就成為 fi 啦!結束 if 之意!

例子:

[root@www scripts]# cp sh06.sh sh06-2.sh  <==用改的比較快![root@www scripts]# vi sh06-2.sh#!/bin/bash# Program:#       This program shows the user's choice# History:# 2005/08/25    VBird   First releasePATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHread -p "Please input (Y/N): " ynif [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then    echo "OK, continue"    exit 0fiif [ "$yn" == "N" ] || [ "$yn" == "n" ]; then    echo "Oh, interrupt!"    exit 0fiecho "I don't know what your choice is" && exit 0

 

多重、複雜條件判斷式

簡單文法

# 一個條件判斷,分成功進行與失敗進行 (else)if [ 條件判斷式 ]; then    當條件判斷式成立時,可以進行的命令工作內容;else    當條件判斷式不成立時,可以進行的命令工作內容;fi

更複雜的情況,則可以使用這個文法:

# 多個條件判斷 (if ... elif ... elif ... else) 分多種不同情況運行if [ 條件判斷式一 ]; then    當條件判斷式一成立時,可以進行的命令工作內容;elif [ 條件判斷式二 ]; then    當條件判斷式二成立時,可以進行的命令工作內容;else    當條件判斷式一與二均不成立時,可以進行的命令工作內容;fi

例子

[root@www scripts]# cp sh06-2.sh sh06-3.sh[root@www scripts]# vi sh06-3.sh#!/bin/bash# Program:#       This program shows the user's choice# History:# 2005/08/25    VBird   First releasePATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHread -p "Please input (Y/N): " ynif [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then    echo "OK, continue"elif [ "$yn" == "N" ] || [ "$yn" == "n" ]; then    echo "Oh, interrupt!"else    echo "I don't know what your choice is"fi

 

利用 case ..... esac 判斷

他的文法如下:

case  $變數名稱 in   <==關鍵字為 case ,還有變數前有錢字型大小  "第一個變數內容")   <==每個變數內容建議用雙引號括起來,關鍵字則為小括弧 )    程式段    ;;            <==每個類別結尾使用兩個連續的分號來處理!  "第二個變數內容")    程式段    ;;  *)                  <==最後一個變數內容都會用 * 來代表所有其他值    不包含第一個變數內容與第二個變數內容的其他程式運行段    exit 1    ;;esac                  <==最終的 case 結尾!『反過來寫』思考一下!

例子

[root@www scripts]# vi sh09-2.sh#!/bin/bash# Program:#     Show "Hello" from $1.... by using case .... esac# History:# 2005/08/29    VBird    First releasePATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHcase $1 in  "hello")    echo "Hello, how are you ?"    ;;  "")    echo "You MUST input parameters, ex> {$0 someword}"    ;;  *)   # 其實就相當於萬用位元組,0~無窮多個任意位元組之意!    echo "Usage $0 {hello}"    ;;esac

 

轉自 http://vbird.dic.ksu.edu.tw/linux_basic/0340bashshell-scripts_4.php#sh06

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.