shell脚本工具之条件测试

简介:

测试文件属性:

-b file           --是否为块设备

-c file           --是否为字符设备

-r file           --文件是否只读

-w file           --文件是否可写

-x file           --文件是否可执行

-s file           --文件长度大于0为真

-d file           --文件是否为一个目录

-f file           --是否为普通文件

-e file           --文件是否存在


[root@tong1 ~]# cat 1.sh 
#!/bin/bash
echo "---------------------"
read -p '请输入一个目录:' ab
if [ -d $ab ];then
    echo "此文件是一个目录:$ab"
elif [ -f $ab ];then
    echo "此文件是一个文件:$ab"
else
   echo "不是文件也不是目录,请重新输入"
fi 
echo "----------------------"

[root@tong1 ~]# ./1.sh 
---------------------
请输入一个目录:qw
不是文件也不是目录,请重新输入
----------------------
[root@tong1 ~]# ./1.sh 
---------------------
请输入一个目录:install.log
此文件是一个文件:install.log
----------------------
[root@tong1 ~]# ./1.sh 
---------------------
请输入一个目录:innotop-1.9.0
此文件是一个目录:innotop-1.9.0
----------------------
[root@tong1 ~]# 


测试数值:

n1 -eq n2              --n1等于n2

n1 -ne n2              --n1不等于n2

n1 -gt n2              --n1大于n2

n1 -lt n2              --n1小于n2

n1 -ge n2              --n1大于等于n2

n1 -le n2              --n1小于等于n2


[root@tong1 ~]# cat 1.sh 
#!/bin/bash
echo "---------------------"
read -p '输入两个数比较大小:' a b
if [ $a -gt $b ];then
    echo "第一个数:$a大于第二个数:$b"
elif [ $a -lt $b ];then
    echo "第二个数:$b大于第一个数:$a"
elif [ $a -ne $b ];then
    echo "两个数相等$a,$b"
else
   echo "输入的数有问题"
fi 
echo "----------------------"

[root@tong1 ~]# ./1.sh 
---------------------
输入两个数比较大小:12 23
第二个数大于第一个数
----------------------
[root@tong1 ~]# vim 1.sh 
[root@tong1 ~]# ./1.sh 
---------------------
输入两个数比较大小:12 23
第二个数:23大于第一个数:12
----------------------
[root@tong1 ~]# ./1.sh 
---------------------
输入两个数比较大小:23 12
第一个数:23大于第二个数:12
----------------------
[root@tong1 ~]# ./1.sh 
---------------------
输入两个数比较大小:12 12
输入的数有问题
----------------------
[root@tong1 ~]# ./1.sh 
---------------------
输入两个数比较大小:dwf w
./1.sh: line 4: [: dwf: integer expression expected
./1.sh: line 6: [: dwf: integer expression expected
./1.sh: line 8: [: dwf: integer expression expected
输入的数有问题
----------------------
[root@tong1 ~]# 

测试字符串:

-z s1            --字符串为空

-n s1            --字符串不为空

s1=s2            --字符串相等

s1!=s2           --字符串不相等

s1               --是否为空串


[root@tong1 ~]# cat 1.sh 
#!/bin/bash
echo "---------------------"
read -p '请输入两个字符串:' a b
if [ -z $a ] || [ -z $b ] ;then
    echo "字符串不能为空"
elif [ $a = $b ];then
    echo "字符串相等"
else
   echo "不是字符串,请重新输入"
fi 
echo "----------------------"

[root@tong1 ~]# ./1.sh 
---------------------
请输入两个字符串:a s
不是字符串,请重新输入
----------------------
[root@tong1 ~]# ./1.sh 
---------------------
请输入两个字符串:a a
字符串相等
----------------------
[root@tong1 ~]# ./1.sh 
---------------------
请输入两个字符串:2 f
不是字符串,请重新输入
----------------------
[root@tong1 ~]# 

测试逻辑算符:

-a          --与

-o          --或

!           --非


[root@tong1 ~]# cat 1.sh 
#!/bin/bash
echo "---------------------"
read -p '请输入两个字符串:' a b
if [ -z $a  -a  -z $b ] ;then
    echo "字符串不能为空"
elif [ $a = $b  -o  $a = $b ];then
    echo "字符串相等或不相等"
else
   echo "不是字符串,请重新输入"
fi 
echo "----------------------"

[root@tong1 ~]# ./1.sh 
---------------------
请输入两个字符串:a s
不是字符串,请重新输入
----------------------
[root@tong1 ~]# ./1.sh 
---------------------
请输入两个字符串:a a
字符串相等或不相等
----------------------
[root@tong1 ~]# ./1.sh 
---------------------
请输入两个字符串:2 f
不是字符串,请重新输入
----------------------
[root@tong1 ~]# 










本文转自 z597011036 51CTO博客,原文链接:http://blog.51cto.com/tongcheng/1623855,如需转载请自行联系原作者
目录
相关文章
|
测试技术 Linux
VPS一键测试脚本,无痕体验+自动导出,服务器测试更轻松
NodeQuality 是一款整合 Yabs、IPQuality、NetQuality 等主流 VPS 测试脚本的全能工具,支持一键测试硬件性能、IP属性、网络质量,并新增分享与导出功能。其“无痕测试”设计不安装依赖、不留残留,兼容性强;测试结果自动排版、截图并生成分享链接,极大提升效率。适合需要全面、快速、干净测试 VPS 的用户,是运维和测评的高效利器。
999 3
|
12月前
|
存储 测试技术 API
数据驱动开发软件测试脚本
今天刚提交了我的新作《带着ChatGPT玩转软件开发》给出版社,在写作期间跟着ChatGPT学到许多新知识。下面分享数据驱动开发软件测试脚本。
441 0
|
Web App开发 JavaScript 测试技术
Playwright 极速入门:1 小时搞定环境搭建与首个测试脚本
本文带你1小时快速入门Playwright,完成环境搭建并编写首个测试脚本。Playwright是微软推出的现代化Web自动化测试工具,支持Chromium、Firefox和WebKit三大浏览器引擎,具备跨平台、多语言(Python/JS/Java/C#)特性。其核心优势包括:智能自动等待机制减少失败率、内置录制工具实时生成脚本、多语言灵活选择,以及真移动端设备模拟能力,显著提升测试效率和可靠性。
|
网络协议 Shell 网络安全
面试官想听的不仅是命令——如何结构化回答“容器无Shell时如何测试外网”?
“说说看,如果一个Pod的容器没有Shell,如何测试它能否访问外网?”
面试官想听的不仅是命令——如何结构化回答“容器无Shell时如何测试外网”?
|
前端开发 JavaScript 测试技术
使用ChatGPT生成登录产品代码的测试用例和测试脚本
使用ChatGPT生成登录产品代码的测试用例和测试脚本
512 35
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
845 59
|
存储 监控 前端开发
如何确保测试脚本的稳定性和可靠性?
确保测试脚本的稳定性和可靠性是保证性能测试结果准确有效的关键
553 58
|
存储 监控 测试技术
测试脚本编写和维护的最佳实践有哪些?
测试脚本编写和维护的最佳实践有哪些?
591 50
|
前端开发 JavaScript Java
通过ChatGPT生成测试用例和测试脚本(2)
通过ChatGPT生成测试用例和测试脚本
546 21
|
SQL 测试技术 API
如何编写API接口的自动化测试脚本
本文详细介绍了编写API自动化测试脚本的方法和最佳实践,涵盖确定测试需求、选择测试框架、编写测试脚本(如使用Postman和Python Requests库)、参数化和数据驱动测试、断言和验证、集成CI/CD、生成测试报告及维护更新等内容,旨在帮助开发者构建高效可靠的API测试体系。