linux shell指令碼之判斷

2021-06-03 12:20:18 字數 2060 閱讀 2371

先寫一些基本語法:

1、字串判斷

str1 = str2      當兩個串有相同內容、長度時為真

str1 != str2      當串str1和str2不等時為真

-n str1        當串的長度大於0時為真(串非空)

-z str1        當串的長度為0時為真(空串)

str1           當串str1為非空時為真

2、數字的判斷

int1 -eq int2    兩數相等為真

int1 -ne int2    兩數不等為真

int1 -gt int2    int1大於int2為真

int1 -ge int2    int1大於等於int2為真

int1 -lt int2    int1小於int2為真

int1 -le int2    int1小於等於int2為真

3 檔案的判斷

-r file     使用者可讀為真

-w file     使用者可寫為真

-x file     使用者可執行為真

-f file     檔案為正規檔案為真

-d file     檔案為目錄為真

-c file     檔案為字元特殊檔案為真

-b file     檔案為塊特殊檔案為真

-s file     檔案大小非0時為真

-t file     當檔案描述符(預設為1)指定的裝置為終端時為真

3、複雜邏輯判斷

-a         與

-o        或

!        非

下面是一些使用例項:

#這裡的-x 引數判斷$mypath是否存在並且是否具有可執行許可權

if [ ! -x "$mypath"]; then

mkdir "$mypath"

fi #這裡的-d 引數判斷$mypath是否存在

if [ ! -d "$mypath"]; then

mkdir "$mypath"

fi #這裡的-f引數判斷$myfile是否存在

if [ ! -f "$myfile" ]; then

touch "$myfile"

fi #其他引數還有-n,-n是判斷乙個變數是否是否有值

if [ ! -n "$myvar" ]; then

echo "$myvar is empty"

exit 0

fi #兩個變數判斷是否相等

if [ "$var1" == "$var2" ]; then

echo '$var1 eq $var2'

else

echo '$var1 not eq $var2'

fi if list then

do something here

elif list then

do another thing here

else

do something else here

fi   

ex1:

#!/bin/sh

system=`uname -s`    #獲取作業系統型別,我本地是linux

if [ $system = "linux" ] ; then     #如果是linux的話列印linux字串

echo "linux"

elif [ $system = "freebsd" ] ; then   

echo "freebsd"

elif [ $system = "solaris" ] ; then

echo "solaris"

else

echo "what?"

fi     #ifend

基本上和其他指令碼語言一樣。沒有太大區別。不過值得注意的是。裡面的條件判斷。

linux shell指令碼之if判斷

無論什麼程式語言都離不開條件判斷。shell也不例外。if list then do something here elif list then do another thing here else do something else here fi ex1 bin sh system uname ...

Linuxshell指令碼之if條件判斷

複製 如下 if list then do something here elif list then do another thing here else do something else here fi ex1 複製 如下 bin sh system uname s 獲取作業系統型別,我本地是...

Linux shell之Shell指令碼

使用多條命令 shell指令碼的關鍵是可以輸入多條命令,甚至可以將一條命令的結果傳遞給另一條命令。date who 兩個命令shell指令碼的寫法 建立shell指令碼 1.將shell命令放置到乙個文字檔案中 2.指明所使用的shell,比如 bin bash 3.可以用 注釋,但是一般注釋不會被...