數字比較運算
關系運算符只支持數字,不支持字符串,除非字符串的值是數字。下表列出了常用的關系運算符,假定變量 a 為 10,變量 b 為 20:
舉例:
#!/bin/bash a=10 b=20 if?[?$a?-eq?$b?] then ???echo?"$a?-eq?$b?:?a?等于?b" else ???echo?"$a?-eq?$b:?a?不等于?b" fi if?[?$a?-ne?$b?] then ???echo?"$a?-ne?$b:?a?不等于?b" else ???echo?"$a?-ne?$b?:?a?等于?b" fi if?[?$a?-gt?$b?] then ???echo?"$a?-gt?$b:?a?大于?b" else ???echo?"$a?-gt?$b:?a?不大于?b" fi if?[?$a?-lt?$b?] then ???echo?"$a?-lt?$b:?a?小于?b" else ???echo?"$a?-lt?$b:?a?不小于?b" fi if?[?$a?-ge?$b?] then ???echo?"$a?-ge?$b:?a?大于或等于?b" else ???echo?"$a?-ge?$b:?a?小于?b" fi if?[?$a?-le?$b?] then ???echo?"$a?-le?$b:?a?小于或等于?b" else ???echo?"$a?-le?$b:?a?大于?b" fi
運行腳本,輸出結果如下:
10?-eq?20:?a?不等于?b 10?-ne?20:?a?不等于?b 10?-gt?20:?a?不大于?b 10?-lt?20:?a?小于?b 10?-ge?20:?a?小于?b 10?-le?20:?a?小于或等于?b
布爾運算符
舉例:
????#!/bin/bash ????a=10 ????b=20 ????if?[?$a?!=?$b?] ????then ???????echo?"$a?!=?$b?:?a?不等于?b" ????else ???????echo?"$a?!=?$b:?a?等于?b" ????fi ????if?[?$a?-lt?100?-a?$b?-gt?15?] ????then ???????echo?"$a?小于?100?且?$b?大于?15?:?返回?true" ????else ???????echo?"$a?小于?100?且?$b?大于?15?:?返回?false" ????fi ????if?[?$a?-lt?100?-o?$b?-gt?100?] ????then ???????echo?"$a?小于?100?或?$b?大于?100?:?返回?true" ????else ???????echo?"$a?小于?100?或?$b?大于?100?:?返回?false" ????fi ????if?[?$a?-lt?5?-o?$b?-gt?100?] ????then ???????echo?"$a?小于?5?或?$b?大于?100?:?返回?true" ????else ???????echo?"$a?小于?5?或?$b?大于?100?:?返回?false" ????fi
腳本運行:
10?!=?20?:?a?不等于?b 10?小于?100?且?20?大于?15?:?返回?true 10?小于?100?或?20?大于?100?:?返回?true 10?小于?5?或?20?大于?100?:?返回?false
邏輯運算符
以下介紹 Shell 的邏輯運算符,假定變量 a 為 10,變量 b 為 20:
實例:
#!/bin/bash a=10 b=20 if?[[?$a?-lt?100?&&?$b?-gt?100?]] then ???echo?"返回?true" else ???echo?"返回?false" fi if?[[?$a?-lt?100?||?$b?-gt?100?]] then ???echo?"返回?true" else ???echo?"返回?false" fi
運行結果:
返回?false 返回?true
字符串運算符
下表列出了常用的字符串運算符,假定變量 a 為 “abc”,變量 b 為 “efg”:
實例:
#!/bin/bash a="abc" b="efg" if?[?$a?=?$b?] then ???echo?"$a?=?$b?:?a?等于?b" else ???echo?"$a?=?$b:?a?不等于?b" fi if?[?$a?!=?$b?] then ???echo?"$a?!=?$b?:?a?不等于?b" else ???echo?"$a?!=?$b:?a?等于?b" fi if?[?-z?$a?] then ???echo?"-z?$a?:?字符串長度為?0" else ???echo?"-z?$a?:?字符串長度不為?0" fi if?[?-n?"$a"?] then ???echo?"-n?$a?:?字符串長度不為?0" else ???echo?"-n?$a?:?字符串長度為?0" fi if?[?$a?] then ???echo?"$a?:?字符串不為空" else ???echo?"$a?:?字符串為空" fi
運行結果:
abc?=?efg:?a?不等于?b abc?!=?efg?:?a?不等于?b -z?abc?:?字符串長度不為?0 -n?abc?:?字符串長度不為?0 abc?:?字符串不為空
相關文章教程推薦:linux視頻教程
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END