天天看點

Linux-Shell腳本程式設計-學習-5-Shell程式設計-使用結構化指令-if-then-else-elif

if-then語句格式如下

Linux-Shell腳本程式設計-學習-5-Shell程式設計-使用結構化指令-if-then-else-elif

bash shell中的if語句可鞥會和我們接觸的其他if語句的工作方式不同,bash shell的if語句會運作if語句後面的那個指令,如果該指令的退出狀态碼是0 那麼執行位于then部分的的指令。

代碼執行個體

Linux-Shell腳本程式設計-學習-5-Shell程式設計-使用結構化指令-if-then-else-elif

這個腳本的功能就是,執行date指令,如果date指令執行成功,那麼他的退出狀态碼是0就執行then後面的代碼,在螢幕上面輸一行文字,this is the if-then test

then後面的語句可以是一條或多條,和我們寫簡單的shell腳本沒有差別,這裡會一條一條的執行下去

測試執行個體代碼

Linux-Shell腳本程式設計-學習-5-Shell程式設計-使用結構化指令-if-then-else-elif

如果我們想要在shell和我們平常一樣使用if else的功能,我們需要使用一下指令格式

Linux-Shell腳本程式設計-學習-5-Shell程式設計-使用結構化指令-if-then-else-elif

這裡,如果 執行if後面的指令的退出狀态碼是0 就執行then後面的代碼塊,否則就執行else後面的代碼塊

測試代碼

Linux-Shell腳本程式設計-學習-5-Shell程式設計-使用結構化指令-if-then-else-elif

在shell程式設計中,也是有if嵌套的,使用格式如下

Linux-Shell腳本程式設計-學習-5-Shell程式設計-使用結構化指令-if-then-else-elif

這個就沒有執行個體代碼了,如果有興趣的,可以吧上面的代碼改吧改吧試試看,每次隻能測試一種。

好了,學習下一個指令,test

test是個好東西,他的功能之一就是可以是我們shell的if可以比較真假的,test的基本指令格式很簡單

Linux-Shell腳本程式設計-學習-5-Shell程式設計-使用結構化指令-if-then-else-elif

condition是test指令要測試的一系列參數和值,當用在if-then語句的時候,test指令執行,如果tets指令中列出的條件為真的時候,退出狀态碼為0 否則為1,這樣就可以在if-then中使用了

就是下面的格式了

Linux-Shell腳本程式設計-學習-5-Shell程式設計-使用結構化指令-if-then-else-elif

不過每次這麼寫也挺别扭的。是以,在bash中,提供了另外一種tets的寫法,那就是方括号[]

不過必須要在左方括号右面,右方括号左面各加一個空格才可以,不然報錯

Linux-Shell腳本程式設計-學習-5-Shell程式設計-使用結構化指令-if-then-else-elif

test指令可以判斷三種類型條件

1. 數值比較

2. 字元串比較

3. 檔案比較

第一類,test數值比較的基本功能

Linux-Shell腳本程式設計-學習-5-Shell程式設計-使用結構化指令-if-then-else-elif
Linux-Shell腳本程式設計-學習-5-Shell程式設計-使用結構化指令-if-then-else-elif
Linux-Shell腳本程式設計-學習-5-Shell程式設計-使用結構化指令-if-then-else-elif

第二個兒問題

#!/bin/bash

#testing string sort order

val1=testing

val2=Testing

if [ $val1 \> $val2 ]

   then

   echo "$val1 is greater than $val2"

else

   echo "$val1 is less than $val2"

fi

字元串大小

#testing string length

val2=''

if [ -n "$val1" ]

   echo "the string '$val1' is not empty"

   echo "the string '$val1' is empty"

if [ -z "$val2" ]

   echo "the string '$val2' is empty"

   echo "the string '$val2' is not empty"

後面還有檔案的比較,由于檔案比較内容比較多,我會在寫一個。

Linux-Shell腳本程式設計-學習-5-Shell程式設計-使用結構化指令-if-then-else-elif