【Shell】20天學會shell腳本命令(3)IF條件語句

一、問題

1.1、環境
電腦環境:Windows 10;
JDK環境: Jdk1.8;
Docker版本:Server Version: 19.03.3
1.2、問題
在Shell腳本語句中,我們肯定會遇到條件判斷,那麼shell的條件判斷該如何編寫呢?

二、解答

2.1、數值判斷;

格式:

if ((條件1));then
	執行語句1
elif ((條件2));then
	執行語句2
else
	不滿足條件
fi

1、正確實例:

#!/bin/bash
NUM=$1
if (($NUM >10));then
    echo "this number($NUM) is bigger than 10"
else
    echo "this number($NUM) is not bigger than 10"
fi                                                                                                                                                                                                                                                                                                                                                                           

正確實例截圖:
在這裏插入圖片描述

2、錯誤實例

#!/bin/bash
NUM=$1
if [[ $NUM > 10 ]] ; then
	echo "this number($NUM) is bigger than 10!"
else
	echo "this number($NUM) is smaller than 10!"
fi

錯誤實例的截圖:
在這裏插入圖片描述
我們得出了完全相反的結論,然而,根據常識,我們明顯知道,9不可能大於10的;那麼,問題出在哪裏呢?原來,雙方括號【[[ 條件 ]]】如果要比較大小,必須使用轉義的大魚號,小於號,等於號;如上圖中,不能直接使用大於號,而應該講大於號換成【-gtl】;並且,雙中括號內側必須兩內側邊空格,否則會報錯;但是,如果使用雙小括號,就可以不用空格,更簡單明瞭;
將上面的語句改成下面的樣子即可:
在這裏插入圖片描述
關於小括號和中括號的用法,可以看下面的總結;
2.2、目錄是否存在
目錄的判斷需要使用中括號,中括號裏的邏輯運算符,可以總結如下:

  1. -f:判斷文件是否存在;
  2. -d:判斷目錄是否存在;
  3. -eq:等於,整數比較;
  4. -ne:不等於,整數比較;
  5. -lt:小於;
  6. -gt:大於;
  7. -le:小於或等於;
  8. -ge:大於或等於;
  9. -a:and,表示並的關係;
  10. -o:or,或者,表示並的關係;
  11. -z:空字符串;
  12. !:非;

實例:
如果目錄不存在,則創建目錄;

#!/bin/bash
#create by tzc at 2019-12-23 22:59:49
if [ ! -d /tmp ];then
	mkdir -p  /tmp
else
	echo "this director is already exit!"
fi

注意感嘆號和-d之間有空格!!!
在這裏插入圖片描述

2.3、測試腳本是否正確
格式:

/bin/bash -n fileExist.sh

如果沒有問題,則會沒有任何提示:
在這裏插入圖片描述
如果有問題,則:
在這裏插入圖片描述
(我這裏多打了一箇中括號);但是,這個方法只能檢查格式錯誤,不能檢查其他的錯誤,立刻如,如果我把中括號那裏換成了1,則不會報錯;

2.4、分數判斷實例:

#!/bin/bash
SCORES=$1
if [ -z $SCORES ];then
	echo "Usage:{please input a number betweent 0 to 100}"
	exit
fi
if [[ $SCORES -gt 90 ]];then
	echo "優秀";
elif [[ $SCORES -gt 80 ]];then
	echo "良好";
elif [[ $SCORES -gt 60 ]];then
	echo  "及格";
else
	echo "不及格!"
fi

截圖:
在這裏插入圖片描述

2.5、注意
1、小括號可以使用>,<,=;並且括號內外可以沒有空格;
2、中括號括號內側必須要有空格;
3、中括號不可以使用<,>,=;而必須使用轉義的邏輯判斷條件;
4、賦值號前後不能有空格;

本篇說明內容完畢;

三、總結

歡迎關注我的
CSDN博客: https://blog.csdn.net/River_Continent
微信公衆號:幕橋社區
在這裏插入圖片描述
知乎:張牧野, https://www.zhihu.com/people/zhang-mu-ye-37-76/activities
簡書: https://www.jianshu.com/u/02c0096cbfd3

發佈了348 篇原創文章 · 獲贊 202 · 訪問量 83萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章