Shell编程 if语句

if语句

if condition
then
	statements(s)
fi

实例1
在这里插入图片描述
在这里插入图片描述

实例2
在这里插入图片描述
在这里插入图片描述

实例3:判断a和b是否相等
在这里插入图片描述实例4
在这里插入图片描述

if elif else 语句

if condition1
then
	statements1
elif condition2
then
	statements2
elif condition3
then 
	statement3
......
else
statement
fi

注: if 和 elif 后边必须加上 then

实例5
在这里插入图片描述

test

test 是 Shell 内置命令,

  • 用来检测某个条件是否成立。
  • 和 if 语句一起使用,并且大部分 if 语句都依赖 test
  • test 命令有很多选项,可以进行数值、字符串和文件三个方面的检测。

Shell test 命令的用法为:

  • test expression
    当 test 判断 expression 成立时,退出状态为0,否则为非0值

  • [ ]
    [ expression ]
    注:[ ]和expression之间的空格必须要有的,否则会语法报错。

test 命令可以判断 三类 条件

  1. 数值比较。
    可以用在数字和变量上
比较描述
n1 -eq n2检查n1是否与n2相等
n1 -ge n2检查n1是否大于或等于n2
n1 -gt n2检查n1是否大于n2
n1 -le n2检查n1是否小于或等于n2
n1 -lt n2检查n1是否小于n2
n1 -ne n2检查n1是否不等于n2

实例1: 比较变量的值和数字的大小,比较变量的值和变量的值的大小
在这里插入图片描述
test命令中不能使用浮点数
在这里插入图片描述

  1. 字符串比较
比较说明
str1 = str2检查str1是否和str2相同
str1 != str2检查str1是否和str2不同
str1 < str2检查str1是否比str2小
str1 > str2检查str1是否比str2大
-n str1检查str1的长度是否非0
-z str1检查str1的长度是否为0

注:

  • 如果第一个字符串是第二个字符串的前缀,那么第一个小(比如a小于about)
  • 从字符串的开头比较,按照字母顺序,a比b小(比如about小于ball)
  • 如果第一个字符相同,再比较第二个(比如about小于above)

实例2: 判断当前登录用户是否为root(等于和不等于比较)
在这里插入图片描述 实例3:判断两个字的字符串的大小(大于小于比较)
在这里插入图片描述注: 不转义大于号时,shell会将 > 识别为输出重定向,它会创建hockey文件。因为系统会执行重定向(if后面)的语句,所以退出状态为0,判断条件为真,所以会执行then后面的语句。

实例4: 判断字符串长度是否为0(是否为0比较)
在这里插入图片描述

  1. 文件比较
比较说明
-d file检查file是否存在并是一个目录
-e file检查file是否存在
-f file检查file是否存在并是一个文件
-r file检查file是否存在并可读
-s file检查file是否存在并非空
-w file检查file是否存在并可写
-x file检查file是否存在并可执行
-O file检查file是否存在并属当前用户所有
-G file检查file是否存在并且默认组与当前用户相同
file1 -nt file2file2 检查file1是否比file2新
file1 -ot file2file2 检查file1是否比file2旧

实例1:判断目录是否存在(-d)
在这里插入图片描述
实例2:判断文件是否存在(-e) 可欠套

在这里插入图片描述
实例3:判断文件是否存在并且是一个普通文件(-f)
在这里插入图片描述

实例3:判断文件是否可读(-r)
在这里插入图片描述

实例4: 如果文件是否存在并且非空(-s)
在这里插入图片描述

实例5:如果文件存在且可写为真(-w)
测试此文件 需要切换至普通用户
在这里插入图片描述

实例6:测试文件是否可执行(-x)
在这里插入图片描述

实例7:判断文件是否存在并且属于当前用户所有(-O)
在这里插入图片描述

实例8:判断文件是否存在并且默认组与当前用户的相同(-G)
在这里插入图片描述
实例9:判断文件的创建时间的早晚(新旧)(-nt | -ot )
在这里插入图片描述

复合条件测试

在这里插入图片描述
在这里插入图片描述

if then的高级特性

  • 双尖括号(())
  • 方括号 [[ ]] —>有针对字符串比较高级的特性—>通配功能
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值