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

相关推荐
运维行者_几秒前
MSP网络管理破局者:IPAM+SPM插件终结IP冲突与安全威胁
运维·服务器·开发语言·网络·安全·web安全·php
女王大人万岁4 分钟前
Golang实战gin-swagger:自动生成API文档
服务器·开发语言·后端·golang·gin
OnlyEasyCode6 分钟前
IIS配置HTTPS如何多个二级域名连接!
服务器·网络协议·https
TG_yunshuguoji7 分钟前
腾讯云代理商:OpenClaw 实战指南-用腾讯云CloudBase 自动化开发网站
服务器·云计算·腾讯云·openclaw
网硕互联的小客服9 分钟前
CentOS 7 系统开通后如何修改数据盘挂载目录?
运维·服务器·网络·安全·自动化
迷路爸爸18011 分钟前
Docker 入门学习笔记 01:它到底解决了什么问题,镜像和容器又是什么
服务器·笔记·学习·docker·容器
【骠姚校尉】11 分钟前
Makefile核心教程(六) --- 一文吃透 Makefile 通配符
linux·makefile·通配符·核心教程
牛奶咖啡1311 分钟前
DevOps自动化运维实践_ansible-playbook的使用
运维·自动化·ansible·devops·playbook·playbook模块及其示例
jiuri_121513 分钟前
OpenHarmony 移植 OpenSSH/sshd
linux·sshd·ohos
慕诗客13 分钟前
英伟达Jetson Agx Orin更换开机Logo
linux