1. 程式人生 > >Linux 中SHELL判斷一個環境變數是否存

Linux 中SHELL判斷一個環境變數是否存

示例指令碼如下:

#!/bin/bash
#emptyEnviroment.sh
if [ $ORACLE_HOME ];then
	echo "ORACLE_HOME = $ORACLE_HOME"
else
	echo "ORACLE IS NOT EXISTS"
fi

if [ -z $JAVA_HOME ];then
	echo "not exists"
else
	echo "JAVA_HOME = $JAVA_HOME"
fi

第一個判斷 $ORACLE_HOME 是判斷當前系統中是否存在環境變數 ORACLE_HOME 如果存在就為 TRUE,否則就為 FALSE 。

第二個判斷 $JAVA_HOME 中 -z 是一個測試條件,判斷當前的環境變數是否為空(字串為空)。

以下為常用測試條件:

字串判斷:

= 兩個字串相等。
!= 兩個字串不等。
-n 非空串。

-z  判斷字串是否為空。

檔案判斷:

-d  目錄
-f   正規檔案
-L  符號連線
-r  可讀

-s  檔案長度大於 0、非空
-w  可寫
-u  檔案有suid位設定
-x  可執行

邏輯操作符:

-a 邏輯與,操作符兩邊均為真,結果為真,否則為假。
-o 邏輯或,操作符兩邊一邊為真,結果為真,否則為假。
! 邏輯否,條件為假,結果為真。

測試數值:

-eq 數值相等。
-ne 數值不相等。
-gt 第一個數大於第二個數。
-lt 第一個數小於第二個數。
-le 第一個數小於等於第二個數。
-ge 第一個數大於等於第二個數。