SHELL腳本if語句

一:條件測試bash

1. 語法:測試

test 條件表達式 或 [ 條件表達式 ]spa

2.文件測試:字符串

-d:測試是否爲目錄test

-f:測試是否爲文件權限

-e:測試目錄或文件是否存在語法

-r:測試當前用戶是否有讀取權im

-w:測試當前用戶是否有寫入權限腳本

-x:測試當前用戶是否有執行權限hosts

例:測試/etc/hosts文件是否存在.如圖


2.數值比較:

-eq:相等

-ne:不相同

-le:小於等於

-ge:大於等於

-gt:大於

-lt:小於

例:如圖


4.字符串比較:

=:第一個字符串和第二個字符串相等

!=:第一個字符串和第二個字符串不相等

-z:檢查字符串是否爲空

例:如圖


5.邏輯測試:

&&:邏輯與,表示先後2個條件都成立時,測試命令返回值爲0(結果成立)

||:邏輯或的意思,表示先後2個條件有其中一個知足條件時,測試命令返回值爲0(結果成立)

!:邏輯否,當條件不成立時,測試命令返回值爲0(結果成立)

例如圖:


二:if條件語句

1.單分支if語句:只在"條件成立"才執行相應的代碼操做,不然不作任何操做.

語法:

if 條件測試操做

then

   命令序列

fi

例如:編寫個腳本,測試系統中是否有/media/cdrom這個目錄,若是沒有則建立.

腳本以下:

#!/bin/bash

mulu="/media/cdrom"

if [ ! -d $mulu ] ; then

  mkdir -p $mulu

fi

2.多分支if語句:針對單分支條件不成立時,執行另外一個操做.

語法

if 條件測試操做

then                                     //條件成立執行命令序列1

  命令序列1

else                                    //條件不成立則執行命令序列2

  命令序列2           

fi

例:編寫一個連通性測試小腳本.根據ping結果顯示不一樣的提示,成功顯示chenggong 失敗顯示shibai.以下:

#!/bin/bash

ping -c 3 -i 0.2 -W 3 $1 &> /dev/null       //此操做不顯示在屏幕上

if [ $? -eq 0 ]                            //上面條件成立則運行下面命令

then

   echo "chenggong"

else                                      //不成立則運行下面的命令

    echo "shibai"

fi

3.多分支if語句:對多個互斥的條件執行不一樣的操做.

語法:

if 條件測試操做1

then

  命令序列1

elif

then

  命令序列2

else

  命令序列3

fi

例:編寫1個成績小腳本,90-100顯示優秀,70-80顯示通常,其餘不及格.如

#!/bin/bash

read -p "請輸入你的成績" chengji

if [ $chengji -ge 90 ] && [ $chengji -le 100 ]

then

 echo "你的成績很優秀"

elif [ $chengji -ge 70 ] && [ $chengji -lt 90 ]

then

  echo "你的成績通常"

else

  echo"你的成績不級合格"

fi

相關文章
相關標籤/搜索