Linux ---------------------内置命令test

Shell中test命令用于检查某个条件是否成立,test一般有三种用法:

  1. 测试文件或者文件夹
  2. 字符串比较
  3. 数值比较

整数比较测试:

if test 数字1 options 数字2

then

fi

options 具体如下:

|-----|---------|
| 参数 | 说明 |
| -eq | 等于则为真 |
| -ne | 不等于则为真 |
| -gt | 大于则为真 |
| -ge | 大于等于则为真 |
| -lt | 小于则为真 |
| -le | 小于等于则为真 |

测试案例:文件:

#!/bin/bash

num1=100

num2=100

if test \[num1\] -eq [num2]

then

echo '两个数相等!'

else

echo '两个数不相等!'

fi

a=5

b=6

result=$[a+b] # 注意等号两边不能有空格

echo "result 为: $result"

字符串测试

|--------|-------------------|
| 参数 | 说明 |
| = | 等于则为真 |
| != | 不相等 |
| -z 字符串 | 字符串的长度为0则相等 |
| -n 字符串 | 字符串的长度不为0则相等 |
| $ | 测试字符串是否不为空,不为空则为真 |

测试案例:

num1="ru1noob"

num2="runoob"

if test num1 = num2

then

echo '两个字符串相等!'

else

echo '两个字符串不相等!'

fi

文件测试

|--------|--------------------|
| 参数 | 说明 |
| -e 文件名 | 如果文件存在则为真 |
| -f 文件名 | 如果文件存在且可读则为真 |
| -w 文件名 | 如果文件存在且可写则为真 |
| -x 文件名 | 如果文件存在且可执行则为真 |
| -d 文件名 | 如果文件存在且为目录则为真 |
| -s 文件名 | 如果文件存在且至少有一个字符则为真 |
| -f 文件名 | 如果文件存在且为普通文件则为真 |
| -c 文件名 | 如果文件存在且为字符型特殊文件则为真 |
| -b 文件名 | 如果文件存在且为特殊文件则为真 |

测试案例:

if test -e ./bash

then

echo '文件已存在!'

else

echo '文件不存在!'

fi

相关推荐
Yolo566Q5 分钟前
从机理到实践告别“黑箱”模拟:OpenGeoSys(OGS6)多物理场THMC 全耦合建模与Python自动化分析
运维·自动化
网络安全许木7 分钟前
自学渗透测试第16天(Linux文本处理进阶)
linux·运维·服务器·网络安全·渗透测试
Lugas Luo11 分钟前
车载录像存储性能模拟测试工具设计
linux·嵌入式硬件·测试工具
铅笔小新z20 分钟前
【Linux】进程控制(下)
linux·运维·chrome
企鹅的蚂蚁21 分钟前
Ubuntu 22.04 终端进阶:Terminator 安装与快捷键完全手册
linux·运维·ubuntu
不会写程序的未来程序员28 分钟前
nvm 安装教程:Node.js 版本管理全攻略 (Win/Mac/Linux) + .nvmrc 实战
linux·macos·node.js·前端开发·环境配置·nvm
黄焖鸡能干四碗30 分钟前
网络安全风险评估报告(WORD版本)
大数据·运维·网络·人工智能·制造
跨境麦香鱼36 分钟前
2026自动化抢鞋机器人:如何通过高并发代理提高成功率?
运维·网络·自动化
路由侠内网穿透42 分钟前
本地部署开源发票管理系统 Invoice Ninja 并实现外部访问
运维·服务器·数据库·物联网·开源
Hello 0 11 小时前
“机房学生认证系统”与批量自动化部署方案
运维·自动化