shell脚本的条件测试的奇怪内容

本文深入探讨了Shell脚本中的条件测试,包括test命令、文件测试、整数测试、字符串测试和逻辑测试。此外,还详细讲解了if语句的单分支、双分支和多分支应用,并通过实例展示了如何检查文件存在及执行权限、解压不同后缀的压缩文件、验证用户输入的整数以及判断主机状态等。
摘要由CSDN通过智能技术生成

一、条件测试

(一)test测试

测试表达式是否成立,若成立返回0,否则返回其他数值
注意 空格 空格 空格

格式1:test 条件表达式

格式2:[ 条件表达式 ]

在这里插入图片描述

(二)文件测试

格式

[ 操作符 文件或目录 ]

在这里插入图片描述

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

(三)整数测试

整数值比较

[ 整数1 操作符 整数2 ]

在这里插入图片描述

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

(四)字符串测试

字符串比较

在这里插入图片描述

在这里插入图片描述

(五)逻辑测试

在这里插入图片描述

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

二、if语句

(一)if单分支语句

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

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

在这里插入图片描述

(二)if双分支语句

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

在这里插入图片描述

例题

if 80端口是否在监听
	then 网站服务已在运行
	else 启动httpd服务
fi

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

(三)if多分支语句

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

在这里插入图片描述

例题

#!/bin/bash
read -p "请输入你的分数:" score
if [ $score -eq 100 ];then
        echo "优秀"
elif [ $score -ge 90 ] && [ $score -lt 100 ];then
        echo "$score分,抄10遍"
elif [ $score -ge 70 ] && [ $score -lt 89 ];then
        echo "$score分,抄20遍"
elif [ $score -ge 60 ] && [ $score -lt 69 ];then
        echo "$score分,抄30遍"
elif [ $score -ge 0 ] && [ $score -lt 60 ];then
        echo "输入有误"
fi

在这里插入图片描述

三、case分支语句

case 变量值 in
模式1)
	命令序列1
	;;
模式2)
	命令序列2
	;;
........
*)
	默认命令序列
esac

在这里插入图片描述

例题

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

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

例题

1.检查用户家目录中的 test.sh 文件是否存在,并且检查是否有执行权限

#!/bin/bash

if [ -f ~/test.sh ];then
echo “test.sh文件存在”
if [ -x ~/test.sh ];then
echo “test.sh有可执行权限”
else
echo “没有可执行权限”
fi

else
echo “文件不存在”
fi

在这里插入图片描述

在这里插入图片描述

3.用case语句解压根据后缀名为 .tar.gz 或 .tar.bz2 的压缩包到 /opt 目录

在这里插入图片描述

4.提示用户输入内容,使用if 语句判断输入的内容是否为整数。

#!/bin/bash
read -p "输入一个数字:" a
expr $a + 1 &>/dev/null
if [ `echo $?` = 0 ];  #if [ $? = 0 ];
    then echo "输入的为整数"
else echo "输入的不是整数"
fi

在这里插入图片描述

5.根据上一题再判断输入的内容是奇数还是偶数。

在这里插入图片描述

6.用if 语句判断主机是否存活

#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &> /dev/null

if [ </span><span class="token keyword">echo</span> $?<span class="token variable"> -eq 0 ]
then
echo " host $1 is on"
else
echo “host $1 is off”
fi

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值