Linux常用命令---- test 命令

文章目录

    • 基本语法
    • 文件测试
      • 检查文件是否存在
      • 检查文件是否是目录
      • 检查文件是否为空
      • 检查文件是否可读、可写或可执行
    • 字符串测试
      • 检查字符串是否为空
      • 检查字符串是否相等
      • 检查字符串是否不相等
    • 数字测试
      • 检查数字是否相等
      • 检查数字是否大于或小于

在Linux操作系统中,test命令是一个非常常用的工具,用于测试文件和表达式的条件。它通常用于脚本中的条件语句中,以便根据条件的真假执行不同的操作。test命令的主要作用是比较文件的属性或字符串的值,然后返回一个布尔值(真或假)以供脚本进行下一步操作的决策。

基本语法

test命令有多种不同的语法形式,最常见的是使用方括号[]来包裹条件表达式,也可以使用test命令的等效形式[ ]或者[[ ]],这些形式的使用方式基本相同。

基本语法如下:

test expression

或者:

[ expression ]

或者更推荐的:

[[ expression ]]

其中,expression是一个要测试的条件表达式,可以是文件测试、字符串测试或数字测试。

文件测试

检查文件是否存在

可以使用-e选项来检查文件是否存在:

if [ -e /path/to/file ]; then
    echo "文件存在"
else
    echo "文件不存在"
fi

检查文件是否是目录

使用-d选项来检查文件是否是一个目录:

if [ -d /path/to/directory ]; then
    echo "这是一个目录"
else
    echo "这不是一个目录"
fi

检查文件是否为空

使用-s选项来检查文件是否为空:

if [ -s /path/to/file ]; then
    echo "文件不为空"
else
    echo "文件为空"
fi

检查文件是否可读、可写或可执行

可以使用-r-w-x选项来分别检查文件是否可读、可写和可执行。

if [ -r /path/to/file ]; then
    echo "文件可读"
else
    echo "文件不可读"
fi

if [ -w /path/to/file ]; then
    echo "文件可写"
else
    echo "文件不可写"
fi

if [ -x /path/to/file ]; then
    echo "文件可执行"
else
    echo "文件不可执行"
fi

字符串测试

检查字符串是否为空

使用-n选项来检查字符串是否为空:

str="Hello, World!"

if [ -n "$str" ]; then
    echo "字符串不为空"
else
    echo "字符串为空"
fi

检查字符串是否相等

使用=~操作符来检查字符串是否相等:

str1="Hello"
str2="World"

if [ "$str1" = "$str2" ]; then
    echo "字符串相等"
else
    echo "字符串不相等"
fi

检查字符串是否不相等

可以使用!=操作符来检查字符串是否不相等:

str1="Hello"
str2="World"

if [ "$str1" != "$str2" ]; then
    echo "字符串不相等"
else
    echo "字符串相等"
fi

数字测试

检查数字是否相等

使用-eq选项来检查数字是否相等:

num1=10
num2=20

if [ "$num1" -eq "$num2" ]; then
    echo "数字相等"
else
    echo "数字不相等"
fi

检查数字是否大于或小于

可以使用-gt(大于)和-lt(小于)选项来检查数字是否大于或小于:

num1=30
num2=20

if [ "$num1" -gt "$num2" ]; then
    echo "num1 大于 num2"
else
    echo "num1 不大于 num2"
fi

if [ "$num1" -lt "$num2" ]; then
    echo "num1 小于 num2"
else
    echo "num1 不小于 num2"
fi

这些只是test命令的一些常见用例,实际上它可以用于更复杂的条件测试,可以嵌套在脚本中以满足各种需求。test命令是Linux中非常有用的工具之一,它使得条件判断变得非常简单,从而提高了脚本的灵活性和可读性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/238407.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Oracle 透明网关安装

Oracle 11g透明网关连接Sqlserver oracle 透明网关是oracle连接异构数据库提供的一种技术。通过Gateway,可以在Oracle里透明的访问其他不同的数据库,如SQL Server, DB2, Sybase等等,就像远程Oracle数据库一样。配置后的sql查询的处理流程&…

数据库中常用的锁

目录 1、数据库中常用的锁类型 2、常见的数据库 3、以MySQL为例 3.1 MySQL的事务 3.2 MySQL事务的四大特性 1. 原子性(Atomicity) 2. 一致性(Consistency) 3. 隔离性(Isolation) ⭐mysql中的事务隔…

容器化升级对服务有哪些影响?

容器技术是近几年计算机领域的热门技术,特别是随着各种云服务的发展,越来越多的服务运行在以 Docker 为代表的容器之内。 本文我们就来分享一下容器化技术相关的知识。 容器化技术简介 相比传统虚拟化技术,容器技术是一种更加轻量级的操作…

程序员考公笔记之逻辑判断(图形推理)

文章目录 写在前面1、逻辑判断1.1、图形推理1.1.1、位置类1.1.2、样式类1.1.3、数量类1.1.4、属性类1.1.5、六面体 写在前面 1、逻辑判断 1.1、图形推理 观察:先宏观,再微观 图形推理的命题形式: 一组式 观察路径:顺序看(考最…

数据结构之优先级队列(堆)及top-k问题讲解

💕"哪里会有人喜欢孤独,不过是不喜欢失望。"💕 作者:Mylvzi 文章主要内容:数据结构之优先级队列(堆) 一.优先级队列 1.概念 我们已经学习过队列,队列是一种先进先出(FIFO)的数据结构&#xff…

单线圈无刷直流电机驱动芯片选型分析,可应用于笔记本,显卡风散热风扇,变频冷却风扇,打印机风扇等产品上

单线圈无刷直流电机的电机驱动器。 GC1298R/S,GC1262E/S,GC1298R/S,GC1262R/S具有高效的直接PWM控制方式,它可以控制无刷直流电机转速。它集成了最低速度限制模式、可调速度斜率控制模式、软启动模式、风扇转速计、锁保护、自动重…

PGSQL 设置autovacuum

VACUUM和ANALYZE是PostgreSQL 数据库维护最重要的两个操作。 vacuum用于恢复表中“死元组”占用的空间。删除或更新(删除后插入)记录时,将产生死元组。PostgreSQL不会从表中物理删除旧行,而是在其上放置一个“标记”,以…

java定位系统源码,UWB技术的无线定位系统源码

UWB技术是一种传输速率高,发射功率较低,穿透能力较强并且是基于极窄脉冲的无线技术。UWB最优的应用环境是室内或者相对密闭的空间,有着厘米级的定位精度,不仅可以非常精准地进行位置跟踪,还可以快速地进行数据传输。 智…

DNF 单机联网 搭建教程(附视频)

更多游戏搭建&pvf修改教程请见: DNF教程 注意:请不要将游戏进行商业化,一切后果概不负责。仅供单机,好友之间进行娱乐!! 注意:请不要将游戏进行商业化,一切后果概不负责。仅供单机&#…

Vue笔记-在axios中的than函数中使用this需要注意的地方

在Vue中,可以使用this关键字来访问到组件中定义的变量。然而,在axios的then函数中,this关键字的作用域会改变,会指向axios对象本身而不是Vue组件实例。因此,不能直接访问到Vue组件中定义的变量。 解决这个问题的一种方…

git入门教程+常用命令

Git入门教程 本文章主要参照视频教程:https://www.bilibili.com/video/BV1FE411P7B3/?spm_id_from333.337.search-card.all.click&vd_source06caf161b187fb3f4c039bc15e238fea 为什么要使用GIT 版本控制是项目、文档迭代的必然要求,所以需要使用…

如何在 IDEA 中设置远程连接服务器开发环境并实现固定地址远程 Linux 环境

文章目录 1. 检查Linux SSH服务2. 本地连接测试3. Linux 安装Cpolar4. 创建远程连接公网地址5. 公网远程连接测试6. 固定连接公网地址7. 固定地址连接测试 本文主要介绍如何在IDEA中设置远程连接服务器开发环境,并结合Cpolar内网穿透工具实现无公网远程连接&#xf…

肥猫游戏报价器|计价器|王者荣耀代练陪练等游戏报价器软件介绍说明

目录 1. 前言2. 软件著作权3. 软件使用说明3.1 进入软件3.2 用户登录3.3 首页3.4 报价器3.4.1 总体介绍3.4.2 王者报价器3.4.3 LOL手游报价器3.4.4 英雄联盟报价器3.4.5 云顶之弈报价器3.4.7 王者水晶报价器3.4.8 和平精英报价器3.4.9 蛋仔派对报价器3.4.10 穿越火线报价器3.4.…

西工大网络空间安全学院计算机系统基础实验二(phase_2下——漫漫深夜过后的黎明!!!)

内存地址内存地址中的数注释指向这块内存的寄存器0xffffd0e8函数phase_2的栈帧0xffffd0e40xffffd0f4函数phase_2的栈帧0xffffd0e00x5655b7b0函数phase_2的栈帧0xffffd0dc0x565566ca函数read_six_numbers的返回地址,函数phase_2的栈帧0xffffd0d80x5655af64旧%ebx的值…

使用加密软件Enigma Protector,可以轻松获得软件许可!

软件许可是在互联网上销售商业软件以及将程序的使用锁定到特定用户或计算机的最常用方式。在这篇文章中,我将解释什么是软件许可证以及如何使用Enigma Protector将其应用到现有软件。 The Enigma Protector 是一款专门设计用来为应用程序添加高强度保护的强大工具。…

【VTK】VTK中的宏定义

很高兴在雪易的CSDN遇见你 【vtkWidgetRepresentation】第九期 vtk中的仿射变换 前言 本文分享VTK中的宏定义,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易会继续努力分享,一起进步! 你的点赞就是我的…

chrome浏览器使用flash player

今天用chrome打开学校校园网,显示不出来成绩单提示如下: 结果下了也没用。 Chrome浏览器在2020年12月已经停止支持Flash Player插件,所以无法在Chrome浏览器上使用Flash Player。 使用其他浏览器 如果之前安装了Flash Player插件的小伙伴&…

关于引用unpkg.com的mars3d相关依赖文件报错无法请求的说明

问题来源: 1.关于引用unpkg.com的mars3d相关依赖文件报错无法请求的说明 说明: 1.最近npm、unpkeg都访问异常,可能是unpkg.com等国外的服务器不稳定导致的请求未响应。 解决方案: 1.请切换静态文件引入的方式请求相关资源。参…

QEMU源码全解析 —— virtio(1)

接前一篇文章: 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM》源码解析与应用 —— 李强,机械工业出版社 特此致谢! virtio简介 对于一台虚拟机而言,除了要虚拟化CPU和内存&…

Linux:符号和符号表

文章目录 什么是符号?什么是符号表?全局符号和本地符号1. 全局符号:symtab符号表 2. 本地符号: 符号在汇编阶段符号在链接阶段1.由模块 m 定义并能被其他模块引用的全局符号。2.由其他模块定义并被模块 m 引用的全局符号。3.只被模…