【小白日记32】----Shell之判断

一、Shell条件测试

1.条件表达式格式

  • test 条件表达式
  • [ 条件表达式 ]
  • [ 条件表达式 ]]

2.文件测试

[ 操作符 文件或目录 ]
符号解释
结果取反
-f filename当filename 存在时返回真
-b filename当filename 存在并且是块文件时返回真(返回0)
-d pathname当pathname 存在并且是一个目录时返回真
-h filename当filename 存在并且是符号链接文件时返回真 (或 -L filename)
-u pathname当由pathname 指定的文件或目录存在并且设置了SUID 位时返回真
-c filename当filename 存在并且是字符文件时返回真
-e pathname当由pathname 指定的文件或目录存在时bvdff返回真
-g pathname当由pathname 指定的文件或目录存在并且设置了SGID 位时返回真
-k pathname当由pathname 指定的文件或目录存在并且设置了"粘滞"位时返回真
-p filename当filename 存在并且是命名管道时返回真
-r pathname当由pathname 指定的文件或目录存在并且可读时返回真
-s filename当filename 存在并且文件大小大于0 时返回真
-S filename当filename 存在并且是socket 时返回真
-t fd当fd 是与终端设备相关联的文件描述符时返回真
-w pathname当由pathname 指定的文件或目录存在并且可写时返回真
-x pathname当由pathname 指定的文件或目录存在并且可执行时返回真
-O pathname当由pathname 存在并且被当前进程的有效用户id 的用户拥有时返回真(字母O 大写)
-G pathname当由pathname 存在并且属于当前进程的有效用户id 的用户的用户组时返回真
file1 -nt file2file1 比file2 新时返回真
file1 -ot file2file1 比file2 旧时返回真

在这里插入图片描述

3.数字比较

 [ 整数1 操作符 整数2 ]

中括号与数值字符之间一定要加空格

符号含义
[ 1 -gt 10 ]大于
[ 1 -lt 10 ]小于
[ 1 -eq 10 ]等于
[ 1 -ne 10 ]不等于
[ 1 -ge 10 ]大于等于
[ 1 -le 10 ]小于等于

一般不会让我们单独使用,配合上一命令返回值 ==$?==使用较多
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.字符串比较

 [ "字符串" = "字符串" ]

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

二、流程控制 If

1.单分支语句

在这里插入图片描述
需求:编写脚本,由用户输入用户名,如果用户不存在,则创建该用户,并设置密码为123456
在这里插入图片描述
在这里插入图片描述

2.双分支语句

需求:编写脚本,由用户输入用户名,如果用户不存在,则创建该用户,并设置密码为123456;否则,提示用户已经存在
在这里插入图片描述
需求:编写脚本,由用户输入用户名,判断该用户的uid及gid,如果相同,则显示Good user;
否则显示Bad user.
在这里插入图片描述

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

在这里插入图片描述

3.多分支结构

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

4.嵌套结构

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

三、流程控制case

1.简单的模式匹配

案例1:在用户来看车的时候询问[Y/N] 然后询问用户年龄 是否成年
在这里插入图片描述
在这里插入图片描述

2.登录跳板主机

案例2:简单的JumpServer
在这里插入图片描述

在这里插入图片描述

3.工具箱

需求:做一个将一些工具统一在一起的窗口
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值