Linux Shell数学运算与条件测试

一、Shell数学运算

1.Shell常见的算术运算符号

序号算术运算符号意义
1+、-、*、/、%加、减、乘、除、取余
2**幂运算
3++、–自增或自减
4&&、||、!与、或、非
5==、!=相等、不相等,==也可写成=
6=、+=、-=、*=、/=、%=赋值运算符,a+=1相等于a=a+1

2.Shell常用算术运算命令

序号算术运算命令意义
1(())、let、$[]用于整数运算
2expr可用于整数运算,还有其他功能
3awk、bc可用于整数运算,也可用于小数运算

3.实例测试:

在这里插入图片描述

二、Shell条件测试

1.条件测试常用的语法

序号条件测试语意义
1test <测试表达式>这是利用test命令进行条件测试表达式的方法,test命令和“<测试表达式>”之间至少有一个空格。
2[ <测试表达式> ][ ]的边界和内容之间至少有一个空格。

2.test条件测试

常用文件类型、文件权限、文件比较、整数比较、字符串判断和逻辑判断。

序号参数意义
1-e判断文件(普通文件或目录文件)是否存在
2-f判断普通文件是否存在
3-d判断目录文件是否存在
4-r判断文件是否有读权限
5-w判断文件是否有写权限
6-x判断文件是否有执行权限
7-nttest file1 -nt file2,判断file1是否比file2新
8-ottest file1 -ot file2,判断file1是否比file2旧
9-eftest file1 -ef file2,判断file1和file2是否同一文件
10-eq判断两个整数是否相等
11-ne判断两个整数是否不相等
12-gttest n1 -gt n2,判断整数1是否大于整数2
13-lttest n1 -lt n2,判断整数1是否小于整数2
14-getest n1 -ge n2,判断整数1是否大于等于整数2
15-letest n1 -le n2,判断整数1是否小于等于整数2
16-z判断字符串是否为0?若字符串为空字符串,则为真,否则反
17-n判断字符串是否为非0?若字符串为非空字符串,则为真,否则反
18==判断两个字符串是否相等
19!=判断两个字符串是否不相等
20&&或-a逻辑与,两端都为真,则为真
21||或-o逻辑或,两端其中一端为真,则为真
22逻辑非,取反

在这里插入图片描述

3.中括号[ ]的条件测试

在脚本中经常进行条件测试,用的最多的是中括号[ ],功能与test一样,中括号与内容两边必须有空格,在条件测试中使用变量必须添加双引号,例如:[ -n "$str" ]

在这里插入图片描述


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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

听GPT 讲Rust源代码--compiler(25)

File: rust/compiler/rustc_target/src/spec/mod.rs 在Rust的源代码中&#xff0c;rust/compiler/rustc_target/src/spec/mod.rs文件的作用是定义和实现有关目标平台的规范。 SanitizerSet是一个结构体&#xff0c;用于表示目标平台上存在的sanitizer集合。 TargetWarnings是一…

学习笔记——C++运算符之赋值运算符

上次我们说到C的运算符共有四种&#xff0c;分别是算术运算符&#xff0c;赋值运算符&#xff0c;比较运算符和逻辑运算符 &#xff0c;下面介绍赋值运算符&#xff0c;赋值运算符主要的种类及作用如下表所示。 #include<bits/stdc.h> using namespace std; int main(){…

线性代数 --- 为什么LU分解中L矩阵的行列式一定等于正负1?

以下是关于下三角矩阵L的行列式一定等于-1的一些说明 笔者的一些话(写在最前面)&#xff1a; 这是一篇小文&#xff0c;是我写的关于求解矩阵行列式的一篇文章中的一部分。之所以把这一段专门提溜出来&#xff0c;是因为这一段相对于原文是可以完全独立的&#xff0c;也是因为我…

nodejs01

nodejs作用 Node.js 是一个免费的、开源的、跨平台的 JavaScript 运行时环境&#xff0c;允许开发人员在浏览器之外编写命令行工具和服务器端脚本. 是javascript的一个运行环境&#xff0c;&#xff0c;&#xff0c; nodejs stream 是前端工程化的基础 nodejs可以作为中间层&…

Nginx快速入门:Nginx实现高可用|结合keepalived实现主备节点(九)

0. 引言 在生产中我们要尽可能避免单点故障&#xff0c;nginx也不例外&#xff0c;因此搭建主备节点必不可少&#xff0c;今天我们来学习下如何利用keepalived实现主备 1. keepalived简介 keepalived 是一个LINUX系统中开源的负载均衡和故障转移软件&#xff0c;它主要用于高…

Qt pro文件

1. 项目通常结构 2.pri文件 pri文件可定义通用的宏&#xff0c;例如创建一个COMMON.pri文件内容为 COMMON_PATH D:\MyData 然后其它pri或者pro文件如APPTemplate.pro文件中通过添加include(Common.pri) &#xff0c;QtCreator就会自动在项目结构树里面创建对应的节点 3.变量…

thinkphp6入门(15)-- 模型动态构建查询条件

背景 我使用thinkphp6的模型写数据库查询&#xff0c;有多个where条件&#xff0c;但是不确定是否需要添加某个where条件&#xff0c;怎么才能动态得生成查询 链式查询 在ThinkPHP 6中&#xff0c;可以使用链式查询方法来动态地构建查询条件。可以根据参数的值来决定是否添加…

[java小贴士]关于double类型进行运算时有误差的相等判断的替代方式

double类型在进行运算时会产生误差, 在不能进行相等判断时可以用绝对值在小于某个范围来替代相等; 如果没有进行运算, 是查询得到或者直接赋值则可以正常进行判断相等

docker拉取镜像提示 remote trust data does not exist for xxxxxx

1、How can I be sure that I am pulling a trusted image from docker 2、docker: you are not authorized to perform this operation: server returned 401. 以上两个问题可以试试以下解决办法 DOCKER_CONTENT_TRUSTfalse 本人是使用jenkins部署自己的项目到docker容器出现…

腾讯云取消免费10G CDN流量包:免费CDN时代结束

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 免费送了7-8年的腾讯云10G免费流量包&#xff0c;从2024年开始&#xff0c;停止赠送了!自此&#xff0c;国内绝大多数互联网大厂的CDN都开收费了! 大概从2016年开始&#xff0c;腾讯云为了抢夺CDN客户&#xff0…

【科技素养题】少儿编程 蓝桥杯青少组科技素养题真题及解析第21套

少儿编程 蓝桥杯青少组科技素养题真题及解析第21套 1、小李说:“冰激凌太凉了。”小王说:“冰激凌可以由牛奶制作。”小李说的是()小王说的是() A、事实 事实 B、事实 观点 C、观点 事实 D、观点 观点 答案:C 考点分析:主要考查小朋友们的对事实和观点的认识:小李…

企业微信开发:自建应用:接收消息(企业内部服务器)/回调配置

概述 在企业微信的自建应用中&#xff0c;用户触发了某些行为&#xff08;发送消息、进行菜单操作或者外部联系人变更等&#xff09;&#xff0c;要发送相关信息给企业内部服务器。 备注&#xff1a;接收消息 和 回调&#xff0c;在本文中指代相同的行为&#xff0c;即企业微信…