shell中的if表達式區分


if快捷鍵

[ ] && 如果為真則執行后面 

[ ] || 如果為假則執行后面 

文件表達式

if [ -f  file ]    如果文件存在
if [ -d dd   ]    如果目錄存在
if [ -s file  ]    如果文件存在且非空 
if [ -r file  ]    如果文件存在且可讀
if [ -w file  ]    如果文件存在且可寫
if [ -x file  ]    如果文件存在且可執行  

 

字符串表達式

注意:“==” 的功能在[[]] 和[] 中是不一樣的([[]]中不需要用轉義字符)

if [ "$string" != "string2" ]

if [ "$string" =="string2" ]

if [ "$string1" \> "string2" ]

if [ "$string1" \< "string2" ] 或者是  if [[ "$string1" < "string2" ]]

if  [ -n $string  ]             如果string 非空(非0),返回0(true) 
if  [ -z $string  ]             如果string 為空
if  [ $sting ]                  如果string 非空,返回0 (和-n類似) 
 

 整數變量表達式

  • -eq 等於,如:if [ "$a" -eq "$b" ]   
  • -ne 不等於,如:if [ "$a" -ne "$b" ]   
  • -gt 大於,如:if [ "$a" -gt "$b" ]   
  • -ge 大於等於,如:if [ "$a" -ge "$b" ]   
  • -lt 小於,如:if [ "$a" -lt "$b" ]   
  • -le 小於等於,如:if [ "$a" -le "$b" ]   
  • <   小於(需要雙括號),如:(("$a" < "$b"))   
  • <=  小於等於(需要雙括號),如:(("$a" <= "$b"))   
  • >   大於(需要雙括號),如:(("$a" > "$b"))   
  • >=  大於等於(需要雙括號),如:(("$a" >= "$b"))   
 

邏輯表達式

 
    邏輯非 !               條件表達式的相反
if [ ! 表達式 ]
if [ ! -d $num ]        如果不存在目錄$num
 
    邏輯與 –a              條件表達式的並列
if [ 表達式1  –a  表達式2 ]
 
    邏輯或 -o               條件表達式的或
if [ 表達式1  –o 表達式2 ]
  •     表達式與前面的=  != -d –f –x -ne -eq -lt等合用
  •     邏輯符號就正常的接其他表達式,沒有任何括號( ),就是並列
if [ -z "$JHHOME" -a -d $HOME/$num ]
  •     注意邏輯與-a與邏輯或-o很容易和其他字符串或文件的運算符號搞混了

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM