shell中条件测试语句与if流程控制语句的使用(二)

目录

1、read命令:

2、判断语句常用的判断符号

test测试命令或者用 [ 测试条件 ] 也行,注意括号两边有空格

2.1 比较符:

2.2 文件比较符与文件判断符:

2.3 字符串比较:

2.4 逻辑操作符:

3、流程控制语句if:

3.1单分支:

3.2 双分支:

3.3 多分枝:

4、流程控制语句case


1、read命令:

read命令就是提示用户从键盘读入数据并赋值给变量,从而实现简单的交互过程

选项:

-p:用来设置提示信息的

-t: 设置等待时间,单位是秒,若在规定的时间内未输入自动退出脚本的执行。

2、判断语句常用的判断符号

test测试命令或者用 [ 测试条件 ] 也行,注意括号两边有空格

常见的测试比较的方法:

2.1 比较符:

-eq:等于= -ne就是不等于的意思 -gt:大于> -ge:大于或等于>= -lt:小于< -le:小于或等于<=

2.2 文件比较符与文件判断符:

 

-e 文件名:判断文件或目录是否存在

-r文件名:判读文件是否有读的权限

-w是否有写的权限

-x:是否有可执行的权限

-s:文件存在并且至少有一个字符即为真

-d:判断文件是否存储并且为目录

-f:判断文件是否为普通文件

-c:判断文件是否为字符型特殊型文件

-b:判断文件是否为块设备文件

-nt:表示文件1是否比文件2新

-ot:表示文件1是否比文件2旧

后创建出来的是新一点的

2.3 字符串比较:

 操作符

 说明

 示例

 ==

 判断两个字符串是否相等

 [ “$a” == “$b” ]

 !=

 判断两个字符串是否不相等

 [ “$a” != “$b” ]

 -z 字符串

 判断字符串是否为空

[ -z  “$a” ]

 -n 字符串

 判断字符串是否不为空

[ -n  “$a” ]

str1 > str2

 判断字符串str1是否大于str2

 [ “str1” \> “str2” ]

str1 < str2

 判断字符串str1是否小于str2

 [ “str1” \< “str2” ]

 注意:对于进行字符串的测试,一定要将字符串加上双引号然后在进行比较,一定要注意空格,一般在 [ ] 里面使用

在 [ ] 判断中空格也算字符串

2.4 逻辑操作符:

 

-a就是与&&一样,或者说是等多个条件同时满足的时候才可以

-o就是||或的意识,多个条件用-o的时候表示满足其中的一个条件即可

!表示相反的意思

3、流程控制语句if:

在shell中或者在其他的语言中if这种控制语句都是很长用的只是不同的语言用法不太一样而且,但是大致的意思是一样的

if分为,单分支,双分支和多分枝

  • 3.1单分支:

单分支的最为简单,就只是判断符合条件后执行什么,不符合就什么也不用做

语句:
if [ 判断条件 ] ;then
  命令
fi

注意要使用fi关闭这判断的流程,;表示换行,如果then在下一行编写就不用加入“;”了

例如一个简单的判读文件是否存在,不存在就创建

还可以用来判断我们磁盘的使用情况是否大于某个值,先要加个您需要的值拿到,比如查看根磁盘的使用情况

 

这样在将这个命令写到shell脚本中,并将这个值放到变量中在进行比较

上图可以看到讲判断的值改为大于或等于5就进行输出了

可以讲这个写入到计划任务中,这样即可一定时的检查磁盘的使用情况了,然后在根据情况进行后面的磁盘清理

  • 3.2 双分支:

双分支也好理解,可以理解为如果执行什么,否则执行什么

语句:
if [ ] ;then
  echo 条件成功后执行的命令任务
else
  echo 否则条件不成功后执行什么
fi

 

例如:按照上面的在加入一下else就可以

  • 3.3 多分枝:

可以进行多次判断进行操作,可以结合read命令使用,当然前面的也都可以与read命令结合使用

语句:

if [ ] ;then
  echo "执行命令1"
elif [ ] ;then
  echo "或者执行命令2"
elif [ ] ;then
  echo "或者执行命令3"
else
  echo "否则执行什么命令4"
fi

 

例如:判断文件是否存在并且有执行权限

 

判断成绩的优异

4、流程控制语句case

case与if的多分枝类似

语句:
case 变量值 in
  "模式1")
    执行命令序列1
    ;;
  "模式2")
    执行命令序列2
     ;;
。。。。。。。。依次类推即可
  *)
    默认命令序列,就是上面的都不满足是执行这个
     ;;
esac

 

例如:

 

注意*不要带有引号了

利用这个就可以写一些启动命令脚本等,帮助查看系统资源的手册,如下

首先我们需要知道查看系统资源的大致的命令

内存:free -h 磁盘:df -h cpu的负载:uptime 网络:ifstat 。。。还有好多,这里只用于举例使用

执行查看

但这个还不是太完善,后面使用while循环后将其完善

 服务启动:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值