02 shell程式設計之條件語句

彈指流沙間發表於2018-06-07

Shell程式設計之條件語句

學習目標:

掌握shell指令碼條件測試

掌握if語句程式設計

 

目錄結構:

 

 

 

條件測試

條件測試概述

l  對特定的條件進行判斷,以決定如何執行操作

l  測試的方法

 方法1:test 條件表示式

 方法2:【條件表示式】

l  當條件成立時,測試語句的返回值為0,否則為其他數值

 

條件測試的分類

1、 檔案測試

2、 整數測試

3、 字串測試

4、 邏輯測試

 

檔案測試

l  格式:【 操作符 檔案或目錄 】

l  常用的測試操作符

-d:測試是否為目錄(directory)

-e:測試目錄或檔案是否存在(exist)

-f:測試是否為檔案(file)

-r:測試當前使用者是否可讀(read)

-w:測試當前使用者是否可寫(write)

-x:測試當前使用者是否可執行(excute)

 

例項:

[root@poll ~]# [ -d /etc ]

[root@poll ~]# echo $?

0

[root@poll ~]# [ -d /etc/profile ]

[root@poll ~]# echo $?

1

[root@poll ~]# [ -d /etc ]&&echo "yes"    //&&意思是前面執行成功載執行後面

Yes

 

整數測試

l  格式:[ 整數1 操作符 整數2 ]

l  常用的測試測試操作符

-eq:等於(equal)

-ne:不等於(not equal)

-gt:大於(greater than)

-lt:小於(lesser than)

-le:小於或等於(lesser or equal)

-ge:大於或等於(greater or equal)

 

例項:

[root@poll ~]# who |wc -l

3

[root@poll ~]# [ `who |wc -l` -gt 5 ] && echo too many

[root@poll ~]# [ `who |wc -l` -gt 2 ] && echo too many

too many

 

字串測試

l  格式1:

[ 字串1 = 字串2 ]

[ 字串1 != 字串2 ]

l  格式2:

[ -z 字串 ]

 

常用的測試操作符:

=:字串內容相同

!=:字串內容不同

-z:字串內容為空

 

例項:

[root@poll ~]# echo $LANG

zh_CN.UTF-8

[root@poll ~]# [ $LANG!="en.US" ] && echo "Not en.US"

Not en.US

 

邏輯測試

l  格式1:

[ 表示式1 ] 操作符 [ 表示式2 ] …

命令1 操作符 命令2 …

l  常用的測試操作符

-a或&&:邏輯與,“而且”的意思,兩個表示式都要執行成功

-o或||:邏輯或,“或者”的意思,有一個執行成功就行了

!:邏輯否

 

例項:

[root@poll ~]# [ -d /etc ] && [ -r /etc ] && echo "you can open it"

you can open it

[root@poll ~]# [ -f /etc ] || [ -d /home ] && echo ok

Ok

 

If語句

If單分支語句

l  If單分支語句結構

if 條件測試操作

   then 命令序列

fi

if執行成功然後執行then。if沒有執行成功,啥都不幹

 

if雙分支語句結構

if 條件測試操作

      then 命令序列1

       else 命令序列2

fi

if執行成功,然後執行then。If沒有執行成功,執行else

 

例項:

 

[root@poll ~]# cat a.sh

#!/bin/bash

#This is my first shell-script

#2018-03-16

read -p "請輸入你的性別:" one

if [ $one = 男 ]

then

echo "you are handsome"

else

echo "you are beautiful"

fi

[root@poll ~]# sh a.sh

請輸入你的性別:男

you are handsome

[root@poll ~]# sh a.sh

請輸入你的性別:女

you are beautiful

 

if多分支語句

if 條件測試操作1

       then 命令序列1

elif 條件測試操作2

       then 命令序列2

else 命令序列3

fi

條件測試操作1執行成功,執行命令序列1;失敗則執行條件測試2,條件測試2執行成功則執行命令序列2,失敗則執行命令序列3。

例項:

[root@poll ~]# vi b.sh

#!/bin/bash

#This is …

read -p " 請輸入你的年齡:" one

if [ $one -le 18 ]

        then echo "you are young"

elif [ $one -gt 18 ] && [ $one -le 60 ]

        then echo "you are so happy"

else echo "you are old"

fi

[root@poll ~]# sh b.sh

 請輸入你的年齡:12

you are young

[root@poll ~]# sh b.sh

 請輸入你的年齡:19

you are so happy

 

接下來講case語句

 

 

相關文章