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很容易和其他字符串或文件的運算符號搞混了