Shell test命令

简介: Shell test命令

概述

Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。

或者使用 [ ] 来判断


数值测试


20160830220032919.png


#!/bin/bash
num1=100
num2=100
if test $[num1] -eq $[num2]
then
    echo '两个数相等!'
else
    echo '两个数不相等!'
fi

输出结果:

两个数相等
test 整数1 -eq 整数2 #整数相等 
test 整数1 -ge 整数2 #整数1大于等于整数2 
test 整数1 -gt 整数2 #整数1大于整数2 
test 整数1 -le 整数2 #整数1小于等于整数2 
test 整数1 -lt 整数2 #整数1小于整数2 
test 整数1 -ne 整数2 #整数1不等于整数2



字符串测试


20160830220224561.png

#!/bin/bash
num1="xiaogongjiang"
num2="xiaogongjiang"
if test num1=num2
then
    echo '两个字符串相等!'
else
    echo '两个字符串不相等!'
fi

输出结果:

两个字符串相等!
test –n 字符串 #字符串的长度非零 
test –z 字符串 #字符串的长度是否为零 
test 字符串1=字符串2 #字符串是否相等,若相等返回true 
test 字符串1!=字符串2 #字符串是否不等,若不等反悔false


文件测试


20160830220800470.png

#!/bin/bash
cd /bin
if test -e ./bash
then
    echo '文件已存在!'
else
    echo '文件不存在!'
fi

输出结果:

文件已存在!

另外,Shell还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,其优先级为:”!”最高,”-a”次之,”-o”最低。例如:

cd /bin
if test -e ./notFile -o -e ./bash
then
    echo '有一个文件存在!'
else
    echo '两个文件都不存在'
fi

输出结果:

 test File1 –ef File2 #两个文件是否为同一个文件,可用于硬连接。主要判断两个文件是否指向同一个inode。
 test File1 –nt File2 #判断文件1是否比文件2新 
 test File1 –ot File2 #判断文件1比是否文件2旧 
 test –b file #文件是否块设备文件 
 test –c File #文件并且是字符设备文件 
 test –d File #文件并且是目录 
 test –e File #文件是否存在 (常用)
 test –f File #文件是否为正规文件 (常用)
 test –g File #文件是否是设置了组id 
 test –G File #文件属于的有效组ID 
 test –h File #文件是否是一个符号链接(同-L)
 test –k File #文件是否设置了Sticky bit位
 test –b File #文件存在并且是块设备文件 
 test –L File #文件是否是一个符号链接(同-h) 
 test –o File #文件的属于有效用户ID 
 test –p File #文件是一个命名管道 
 test –r File #文件是否可读 
 test –s File #文件是否是非空白文件 
 test –t FD #文件描述符是在一个终端打开的 
 test –u File #文件存在并且设置了它的set-user-id位 
 test –w File #文件是否存在并可写 
 test –x File #文件属否存在并可执行


判断表达式

if test #表达式为真 
if test ! #表达式为假 
test 表达式1 –a 表达式2 #两个表达式都为真 
test 表达式1 –o 表达式2 #两个表达式有一个为真 
test 表达式1 ! 表达式2 #条件求反


相关文章
|
网络协议 Shell 网络安全
面试官想听的不仅是命令——如何结构化回答“容器无Shell时如何测试外网”?
“说说看,如果一个Pod的容器没有Shell,如何测试它能否访问外网?”
面试官想听的不仅是命令——如何结构化回答“容器无Shell时如何测试外网”?
|
存储 Unix Shell
Shell 输出命令完全指南:echo 与 printf 的深度剖析
本文深入解析了 Shell 编程中 `echo` 和 `printf` 两个核心输出命令的用法与区别。`echo` 简单易用,适合基础输出;`printf` 功能强大,支持复杂格式化。文章从语法、转义序列、高级技巧到实际应用场景(如日志记录、进度显示)逐一讲解,并对比两者的性能与适用场景,帮助开发者根据需求灵活选择。最后通过进阶技巧和常见问题解答,进一步提升对两者的掌握程度。
822 1
|
运维 Shell 数据库
Python执行Shell命令并获取结果:深入解析与实战
通过以上内容,开发者可以在实际项目中灵活应用Python执行Shell命令,实现各种自动化任务,提高开发和运维效率。
532 20
|
安全 Shell 数据处理
使用Python执行Shell命令并获取结果
在实际应用中,可以根据需要选择适当的参数和方法来执行Shell命令,并处理可能出现的各种情况。无论是系统管理、自动化任务还是数据处理,掌握这些技巧都将极大地提高工作效率。
758 12
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
1100 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
人工智能 Shell iOS开发
AI Shell:在命令行里“对话” AI ,微软推出将 AI 助手引入命令行的 CLI 工具,打造对话式交互命令行
AI Shell 是一款强大的 CLI 工具,将人工智能直接集成到命令行中,帮助用户提高生产力。AI Shell 支持多种 AI 模型和助手,通过多代理框架提供丰富的功能和灵活的使用模式。
2584 7
|
Java Shell Windows
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
636 1
|
Unix Shell Linux
常见的shell命令
shell常用命令
476 11
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
Shell 知识图谱
Shell printf 命令
10月更文挑战第3天
208 1