我是靠谱客的博主 搞怪黄豆,最近开发中收集的这篇文章主要介绍shell脚本的条件测试、if语句和 case分支语句条件测试if语句case语句,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  • 条件测试
    • 逻辑测试
    • 文件测试
      • 常用的测试操作符
    • 整数测试
      • 常用的测试操作符
    • 字符串比较
      • 常用的测试操作符
  • if语句
    • if单分支
    • 双分支
    • 多分支
      • 示例
  • case语句

条件测试

  • test命令 测试表达式是否成立,若成立返回0,否则返回其他数值

逻辑测试

[ 表达式1 ] 操作符 [ 表达式2 ]
-a或者&& :逻辑与,而且的意思(第一个成立就不会再看后面了)
-o或|| :逻辑或,或者的意思(第一个成立就直接成立)
!  :逻辑否,取反(和后面的一个字符中间有空格)

文件测试

[ 操作符 文件或目录 ]

常用的测试操作符

-d 测试是否为目录
-e 测试目录火文件是否存在
-f 测试是否为文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行
[root@localhost ~]# mkdir tt
[root@localhost ~]# touch xx
[root@localhost ~]# [ -d tt ] && echo y || echo n          #如果tt是目录输出y
y
[root@localhost ~]# [ -d xx ] && echo y || echo n          #如果xx是目录输出y不是输出n
n

整数测试

[ 整数1 操作符 整数2 ]

常用的测试操作符

-eq 等于(Equal)
-ne 不等于(Not Equal)
-gt 大于(Greater Than)
-lt 小于(Lesser Than)
-le 小于或等于(Lesser or Equal)
-ge 大于或等于(Greater or Equal)
[root@localhost ~]# [ 1 -eq 1 ] && echo "y" || echo "n"  #确认是否成立,如果成立就不会再看后面的选项,如果不成立就输出后面的选项,很明显成立,所以输出y
y

字符串比较

[字符串1 = 字符串2]
[字符串1 !=字符串2]
[-z 字符串]

常用的测试操作符

  • = :字符串内容相同
  • != :字符串内容不同,!号表示取反
  • -z :字符串内容为空
[root@localhost ~]# test 1 == 2         #用1和2测试是否1等于2
[root@localhost ~]# echo $?           #显示上条命令结果
1                                      #为1表明1并不等于2
[root@localhost ~]# test 1 == 1         #1是否等于1,返回为0表示是成立的
[root@localhost ~]# echo $?
0
[root@localhost ~]# test 1 != 2         #!=为1不等于2
[root@localhost ~]# echo $?
0                                        #返回值为0,表示1确实不等于2

if语句

if单分支

if 条件测试操作
	then 命令序列
fi

双分支

if 条件测试操作;then
   命令序列1
else 命令序列2
fi

多分支

if 条件测试操作1;then
  命令序列1
elif 条件测试操作2;then
  命令序列2
else
   命令序列3
fi

示例

#!/bin/bash
#测试服务是否安装
#如果安装并启动了就显示服务已启动
#如果美欧安装了没有启动就启动服务
#如果没有安装就安装服务
read -p "请输入要检测的服务:" server
netstat -anp | grep $server &> /dev/null
if [ $? -eq 0 ];then
        echo "$server服务已经启动!"
else
        rpm -q $server &> /dev/null
if [ $? -eq 0 ];then
        echo "$server服务已安装,正在启动...."
        service  $server  start
else
        yum -y install $server
        systemctl start $server
 fi
fi
[root@localhost ~]# ./2.sh
请输入要检测的服务:bind
bind服务已经启动!

#!/bin/bash
#交互式创建用户并且创建密码
#创建完用户后确定已经创建
read -p "请输入用户名:" user
read -p "请输入密码:" passwd
useradd $user
echo "$passwd" | passwd --stdin $user
id $user
[root@localhost ~]# bash gg.sh
请输入用户名:hha
请输入密码:123
useradd:用户“hha”已存在
更改用户 hha 的密码 。
passwd:所有的身份验证令牌已经成功更新。
uid=1032(hha) gid=1032(hha)=1032(hha

case语句

case 变量值 in
模式1)
   命令序列1
  ;;
模式2)
   命令序列2
  ;;
……
*)
   默认命令序列
esac
#!/bin/bash
#输入月份查询属于第几季度
read -p "请用中文输入月份:" yf
case $yf in
一月|二月|三月)
echo "第一季度";;
四月|五月|六月)
echo "第二季度";;
七月|八月|九月)
echo "第三季度";;
十月|十一月|十二月)
echo "第四季度";;
esac
[root@localhost ~]# bash yuefen.sh
请用中文输入月份:一月
第一季度

最后

以上就是搞怪黄豆为你收集整理的shell脚本的条件测试、if语句和 case分支语句条件测试if语句case语句的全部内容,希望文章能够帮你解决shell脚本的条件测试、if语句和 case分支语句条件测试if语句case语句所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部