[Shell]test命令使用指南
Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
1. 数值
参数 | 说明 |
---|---|
-eq | 等于则为真 |
-ne | 不等于则为真 |
-gt | 大于则为真 |
-ge | 大于等于则为真 |
-lt | 小于则为真 |
-le | 小于等于则为真 |
Example:
num1=100
num2=100
if test $[num1] -eq $[num2]
thenecho '两个数相等'
elseecho '两个数不相等'
fi
# 两个数相等
2. 字符串
参数 | 说明 |
---|---|
= | 等于则为真 |
!= | 不相等则为真 |
-z 字符串 | 字符串的长度为零则为真 |
-n 字符串 | 字符串的长度不为零则为真 |
Example:
str1="2016-11-21"
str2="2016-11-22"
if test ${str1} = ${str2}
thenecho '两个日期相同'
elseecho '两个日期不相同'
fi
# 两个日期不相同
备注
如果上面的使用方法中,字符串中有空格,则会报错:
str1="2016-11-22 12:34:21"
str2="2016-11-22 12:34:21"
if test ${str1} = ${str2}
thenecho '两个日期相同'
elseecho '两个日期不相同'
fi
输出:
两个日期不相同
/home/xiaosi/code/openDiary/BaseOperation/src/main/sh/sh_test.sh: 第 6 行: test: 参数太多
解决方案:
str1="2016-11-22 12:34:21"
str2="2016-11-22 12:34:21"
if test "${str1}" = "${str2}"
thenecho '两个日期相同'
elseecho '两个日期不相同'
fi
输出:
两个日期相同
3. 文件
参数 | 说明 |
---|---|
-e 文件名 | 如果文件存在则为真 |
-r 文件名 | 如果文件存在且可读则为真 |
-w 文件名 | 如果文件存在且可写则为真 |
-x 文件名 | 如果文件存在且可执行则为真 |
-s 文件名 | 如果文件存在且至少有一个字符则为真 |
-d 文件名 | 如果文件存在且为目录则为真 |
-f 文件名 | 如果文件存在且为普通文件则为真 |
-c 文件名 | 如果文件存在且为字符型特殊文件则为真 |
-b 文件名 | 如果文件存在且为块特殊文件则为真 |
Example:
if test -e /home/xiaosi/error.txt
thenecho '文件存在'
elseecho '文件不存在'
fi
# 文件存在
if test -r /home/xiaosi/error.txt
thenecho '文件可读'
elseecho '文件不可读'
fi
# 文件可读
if test -s /home/xiaosi/error.txt
thenecho '文件不为空'
elseecho '文件为空'
fi
# 文件为空
if test -d /home/xiaosi
thenecho '文件为目录'
elseecho '文件不为目录'
fi
# 文件为目录
4. 逻辑操作
Shell还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,其优先级为:"!"最高,"-a"次之,"-o"最低。
Example:
str="2016-11-21"
if test "${str}" = "2016-11-21" -a -s /home/xiaosi/error.txt
thenecho '日期正确 并且 文件不为空'
elseecho '日期错误 或者 文件为空'
fi
# 日期错误 或者 文件为空
[Shell]test命令使用指南相关推荐
- 高级 Linux 命令精通指南
原文出处 http://www.oracle.com/technetwork/cn/server-storage/linux/part1-093824-zhs.html Technorati 标签: ...
- Arthas watch 命令使用指南
作者 | Agentd Arthas watch 命令使用指南 Arthas 是我很喜欢的一款 Java 领域的开发调试工具. 每次测试遇到问题的时候,当别人为了加一条日志而重发代码,我都会欣慰地拿出 ...
- Linux文件命令精通指南(三)(转)
Linux文件命令精通指南(三)(转) 查看和查找文件 文件过滤器 用来读取文件内容和在文件内容上执行操作的命令有时被称为 1y滤器.sed 和 awk 命令是两个滤波器的例子,因为在以前的 OTN ...
- Python快速实现 CMD 命令调用指南
Python快速实现 CMD 命令调用指南 在 Python 中,我们可以很方便地通过调用 CMD 命令来执行系统操作.本文将为您介绍如何使用 Python 调用 CMD 命令,并提供相关代码和详细描 ...
- Linux文件命令精通指南(二)(转)
Linux文件命令精通指南(二)(转) 文件处理命令 剖析一个文件列表 ls 命令用来查看用户有执行权限的任意目录中的文件列表,该命令有许多有趣的选项.例如: $ ls -liah * 22684 - ...
- 2021年大数据Kafka(三):❤️Kafka的集群搭建以及shell启动命令脚本编写❤️
全网最详细的大数据Kafka文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Kafka的集群搭建以及shell启动命令脚本编写 一.搭建 ...
- linux中的shell有printf吗,Linux Shell系列教程之(八)Shell printf命令详解
在上一篇:Linux Shell系列教程之(七)Shell输出这篇文章中,已经对Shell printf命令有了一个简略的介绍,本篇给大家详细介绍下Shell中的printf命令. 一.Shell p ...
- Shell test命令(Shell [])详解,附带所有选项及说明
test 是 Shell 内置命令,用来检测某个条件是否成立.test 通常和 if 语句一起使用,并且大部分 if 语句都依赖 test. test 命令有很多选项,可以进行数值.字符串和文件三个方 ...
- Shell+Linux命令实现日志分析
这篇文章主要介绍了Shell+Linux命令实现日志分析,本文给出了结合grep命令.awk命令等实现了几个常用的日志分析统计长命令,需要的朋友可以参考下 一.列出当天访问次数最多的IP 命令: 复制 ...
- 【Linux】1.shell各个命令
shell各个命令 1.符号参数 $# 传递到脚本的参数个数 $* 以一个单字符串显示所有向脚本传递的参数.如"$*"用「"」括起来的情况.以"$1 $2 - ...
最新文章
- Python 读取 YUV(NV12) 视频文件-优化
- 2、HTML <img>标签(插入图片)
- P678-vect2.cpp
- SpringMVC的Controller
- 现在学Java有前途吗?Java岗位饱和了吗?
- c++中怎么数组内有用元素的个数_前端面试(算法篇) - 数组乱序
- Toad for Oracle 导入MIP.dmp文件时:报内存不足时的解决办法:
- mysql 5.5 主从同步问题_MySQL 5.5 主从复制异步、半同步以及注意事项详解
- mysql 5.0.37.tar.gz_Linux下MySQL5.0.37安装配置步骤
- hibernate注释映射_Hibernate一对多映射示例注释
- shell中的getopt与getopts
- python求解LeetCode习题Sort Colors
- 随机抽样方法——DataFrame.sample()
- 中文文本分析(matplotlib的库的应用)
- 电力电子与电力传动类毕业论文文献包含哪些?
- CI环境搭建-创建git
- 用dom4j实现对象和xml文件的互相转换
- 【中科院】分子生物学-朱玉贤第四版-笔记-第13讲 原核生物表达调控
- 基于Django的水果线上销售平台
- SpringBoot - ApplicationRunner的作用是什么?