@$(( ))用在測試判斷中@
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...