Shell脚本-----------编程之条件语句-------基础知识汇总

一、条件测试

1.1 文件测试与整数测试

1.1.1 test命令

●测试表达式是否成立,若成立返回0,否则返回其他数值

■常用的测试操作符举例:

[root@localhost ~]# [ -d /dev/disk/ ]
[root@localhost ~]# echo $?
0
[root@localhost ~]# [ -d /dev/disk/server ]
[root@localhost ~]# echo $?
1
[root@localhost ~]# [ -d /dev/disk/ ] && echo "YES"
YES

■整数值比较
【 整数1 操作符 整数2 】

■常用的测试操作符举例:

[root@localhost ~]# who | wc -l
3   ##有3个终端登录##
[root@localhost ~]# [ $(who | wc -l) -gt 2 ] && echo "Too many."
Too many.    ##终端数大于2个,输出成功##
[root@localhost ~]# [ $(who | wc -l) -ge 3 ] && echo ">=3."
>=3.  ####终端数大于等于3个,输出成功##

1.2 字符串测试与逻辑测试

■字符串比较
●格式1:【 字符串1 = 字符串2 】
【 字符串1 != 字符串2 】
●格式2:【 -z 字符串 】

[root@localhost ~]# echo $LANG
en_US.UTF-8
[root@localhost ~]# [ $LANG = "en_US" ] && echo "en_US."
[root@localhost ~]# [ $LANG = "en_US.UTF-8" ] && echo "en_US."
en_US.  ##需要精确匹配才能输出正确信息##

■逻辑测试
格式1:【 表达式1 】 操作符 【 表达式2 】 …
格式2:命令1 操作符 命令2 …

[root@localhost opt]# [ -d /etc ] && [ -d /home ] && echo "You can open it"
You can open it

二、 if语句

2.1 if单分支语句

■单分支if语句
●判断挂载点目录,若不存在则自动创建

[root@localhost ~]# vi chkmountdir.sh
#!/bin/bash
MOUNT_DIR="/opt/cdrom/"
if [ ! -d $MOUNT_DIR ]
then
  echo "创建$MOUNT_DIR" >>/opt/shell.log
  echo "创建$MOUNT_DIR"
  mkdir -p $MOUNT_DIR
fi
[root@localhost ~]# chmod +x chkmountdir.sh 
[root@localhost ~]# ./chkmountdir.sh 
创建/opt/cdrom/

2.2 if双分支语句

■双分支if语句
●判断目标主机是否存活,显示检测结果

[root@localhost ~]# vi pinghost.sh
#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &>/dev/null
if [ &? = 0 ]
 then
  echo "Host $1 is up."
 else 
  echo "Host $1 is down."
fi
[root@localhost ~]# chmod +x pinghost.sh 
[root@localhost ~]# ./pinghost.sh 20.0.0.2
Host 20.0.0.2 is up.
[root@localhost ~]# ./pinghost.sh 20.0.0.111
Host 20.0.0.111 is down.

2.3 if多分支语句

■多分支if语句
●判断分数范围,分出优秀、合格、不合格以及无效分数四档

[root@localhost ~]# vi grade.sh
#!/bin/bash
read -p "请输入您的分数(0~100):" GRADE
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ]
 then
  echo "$GRADE 分,优秀!"
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ]
 then
  echo "$GRADE 分,合格!"
elif [ $GRADE -ge 0 ] && [ $GRADE -le 69 ]
 then
  echo "$GRADE 分,不合格!"
else
  echo "分数无效,请重新输入!"
fi
[root@localhost ~]# chmod +x grade.sh 
[root@localhost ~]# ./grade.sh 
请输入您的分数(0~100):55
55 分,不合格!
[root@localhost ~]# ./grade.sh 
请输入您的分数(0~100):99
99 分,优秀!
[root@localhost ~]# ./grade.sh 
请输入您的分数(0~100):82
82 分,合格!
[root@localhost ~]# ./grade.sh 
请输入您的分数(0~100):110
分数无效,请重新输入!

三、case分支语句

在这里插入图片描述

[root@localhost ~]# vi key.sh
#!/bin/bash
read -p "请输入一个字符,并按Enter键确认:" KEY
case "$KEY" in
[a-z]|[A-Z])
  echo "您输入的是字母."
  ;;
[0-9])
  echo "您输入的是数字."
  ;;
*) 
  echo "您输入的是空格、功能键或其他控制字符."
esac
[root@localhost ~]# chmod +x key.sh 
[root@localhost ~]# ./key.sh 
请输入一个字符,并按Enter键确认:a
您输入的是字母.
[root@localhost ~]# ./key.sh 
请输入一个字符,并按Enter键确认:A^H
您输入的是空格、功能键或其他控制字符.
[root@localhost ~]# ./key.sh 
请输入一个字符,并按Enter键确认:9
您输入的是数字.
[root@localhost ~]# ./key.sh 
请输入一个字符,并按Enter键确认:D
您输入的是字母.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值