if語句基本語法
if condition
then
staements
elif condition
then
statements
else
statements
fi
常見條件表達式
文件表達式
if [ -f file ] 如果文件存在
if [ -d ... ] 如果目錄存在
if [ -s file ] 如果文件存在且非空
if [ -r file ] 如果文件存在且可讀
if [ -w file ] 如果文件存在且可寫
if [ -x file ] 如果文件存在且可執行
- 整數變量表達式
shell中邏輯關係判斷條件(用於數值判斷)
-------------------------------------------
| 邏輯關係 | shell語句 |
| > | -gt (greater than) |
| < | -lt (less than) |
| == | -eq (equal) |
| >= | -ge (greater equal) |
| <= | -le (less equal) |
| != | -ne (no equal) |
-------------------------------------------
- 字符串變量表達式
If [ $a = $b ] # 如果string1等於string2
# 字符串允許使用賦值號做等號
if [ $sting1 != $string2 ] # 如果string1不等於string2
if [ -n $string ] # 如果string 非空(非0),返回0(true)
if [ -z $string ] # 如果string 爲空
if [ $sting ] # 如果string 非空,返回0 (和-n類似)
= 作爲等於時,其兩邊都必須加空格,否則失效
總結:if邏輯判斷語句也可寫在同一行,用";"分隔。
#! /bin/bash
## if 語句
## Written by coohx
a=5
if [ $a -gt 10 ];then echo "a>10";else echo "a<=10";fi
常用語法總結:
#! /bin/bash
## if 語句
## Written by COOHX
##############整數變量表達式##################
a=5
if [ $a -gt 10 ];then echo "a>10";else echo "a<=10";fi
##############文件表達式######################
# -s 文件存在且非空
if [ -s 1.txt ];then
echo "OK!"
else
echo "false!"
fi
#############字符串變量表達式#################
var1=huangxin
var2=coohx
#字符串變量判斷相等時,等號與左右兩邊的變量有空格,否則條件表達式‘$var="string"’會被識別爲一個變量,即變量 $var="string"
#if [ $var2 = "huangxin" ];then
#if [ -z $1 -a $var2 = "huangxin" ];then
if [ -z $1 ] && [ $var2 != "huangsdfxin" ];then
echo "OK!"
else
echo "false!"
fi
##############字符串變量表達式##############
string=notnull
# $string 等價於 -n $string,即 不爲空時返回0,爲真!
if [ $string ];then
echo "not null!"
else
echo "null!"
fi
#echo $string
##############if 簡化語句 ############
# [ conditions ] 若成立,就執行&&後面的命令
[ -f 1.txt ] && rm 1.txt
# [ conditions ] || 若不成立,就執行||後面的命令
[ -f 1.txt ] || touch 1.txt