BASH命令和SHELL指令碼總結 7 判斷篇

2021-06-09 21:49:04 字數 2328 閱讀 8832

@$(( ))用在測試判斷中@

a=5;b=7;echo$((a輸出結果為1

類似的判斷語句有

<:小於

>:大於

<=:小於或等於

>=:大於或等於

==:等於

!=:不等於

@使用條件語句來判斷檔案屬性@

可以用man test看到更多詳細情況

格式:-操作符 filename  

-e 檔案存在返回1, 否則返回0  

-s 檔案大小不為零返回1, 否則返回0  

-r 檔案可讀返回1,否則返回0  

-w 檔案可寫返回1,否則返回0  

-x 檔案可執行返回1,否則返回0  

-o 檔案屬於使用者本人返回1, 否則返回0  

-f 檔案為普通檔案返回1, 否則返回0  

-d 檔案為目錄檔案時返回1, 否則返回0  

operator producestrue if... number of operands

-n operand nonzero length 

-z operand haszero length 

-d there exists adirectory whose name is operand 

-f there exists afile whose name is operand 

-eq the operandsare integers and they are equal 

-neq the oppositeof -eq 

= the operandsare equal (as strings) 

!= opposite of= 

-lt operand1 isstrictly less than operand2 (both operands should be integers) 

-gt operand1 isstrictly greater than operand2 (both operands should be integers) 

-ge operand1 isgreater than or equal to operand2 (both operands should be integers) 

-le operand1 isless than or equal to operand2 (both operands should be integers) 

例1 .  測試乙個資料夾是否存在

mydir="/search/feiwenyi/"

if [  -d  "$mydir" ]

then

echo"the dir $mydir exists"

else

echo"the dir $mydir  does not exist"

fi例2. 測試變數的長度

myvar=""

if [ -z"$myvar"]

then

echo"the variable has zero length"

else

echo"the variable has non zero length"

fi例3.目錄是否存在或者具有許可權  

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

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

mkdir"$mypath"  

fi  

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

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

touch"$myfile"  

fi   

@測試變數的長度@

方法一[@djt_8_178coderun]# echo "$a"|wc -c                        #可能是考慮了字串結束符,計算結果為實際長度+1

方法二 expr

[@djt_8_178coderun]# echo `expr length "$a"`            #計算結果為實際長度

方法三 awk

echo"$str"|awk ''

@if條件判斷@

if [ 條件判斷一 ] && (||) [ 條件判斷二 ]

then

執行第一段程式

elif [ 條件判斷三 ] && (||) [ 條件判斷四 ]

then

執行第二段程式

else

執行第三段內容

fi

Shell指令碼之Bash內部命令

本文是自己學習的總結,僅以作分享。若有不對的地方歡迎指正。bash內部命令 有些內部命令在目錄列表是看不見的,他們有shell本身提供,常用的內部命令有 echo eval exec export readonly read shift wait exit和 echo 將變數名錶指定的變數顯示到標準...

BASH命令和SHELL指令碼總結 5 賦值篇

把命令執行結果賦值給變數 result grep o href website address1 wc l 如何把檔案中的每一行賦值給乙個陣列 array catfile array a bc def echo 取全部元素 a b c def echo 取第乙個元素a echo 取得陣列元素的個數4...

BASH命令和SHELL指令碼總結 9 其它篇

算術運算 a 11 leta a 5 echo a 輸出為16 a 11 a a 5 echo a 輸出為a 5 a 11 a a 5 echo a 輸出為16 用來做算術計算 a 5 b 7 c 2 echo a b c 19 echo a b c 6 echo a b c 1 歸併排序 s ex...