Shell 编程之if常见语法

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值