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

Posted 贪吃小松鼠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本的条件测试的奇怪内容相关的知识,希望对你有一定的参考价值。

一、条件测试

(一)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

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

在这里插入图片描述

以上是关于shell脚本的条件测试的奇怪内容的主要内容,如果未能解决你的问题,请参考以下文章

《跟老男孩学Linux运维之shell编程实战》-第五章 shell脚本的条件测试

shell脚本的条件测试与比较

shell脚本的条件测试与比较

Shell脚本的条件判断与比较

编写Shell脚本

Shell脚本编程概述:算数运算和条件测试