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