Shell编程之运算符

news2024/12/23 9:44:20

目录

算数运算符

关系运算符

文件运算符

逻辑运算符


算数运算符

注意:

  • 原生bash不支持简单的数学运算,但是可以通过其他命令来实现, 例如 expr

常用算数运算符
+
-
*
/
%取余

示例如下:

A=2
B=3
expr $[$A+$B]
expr $[$A-$B]
expr $[$A*$B]
expr $[$A/$B]
expr $[$A%$B]

 复合算数运算:

expr $[($A+$B)*$B]

注意:

  • 表达式和运算符之间要有空格。
  • 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。
  • 乘号(*)前边必须加反斜杠(\)进行转义才能实现乘法运算。

 关系运算符

常用关系运算符
在[]中使用的比较符在(()和[[]]}中使用的比较符说明
eq==equal 的缩写,表相等
-ne!=not equal 的缩写,表不相等
-gt>greater thanl 的缩写,表大于
-ge>=greater equal 的缩写,表大于等于
-lt<greater equal 的缩写,表小于
-le<=greater equal 的缩写,表小于等于

示例如下:

[ $A -eq $B ]
echo $?

[ $A == $B ]
echo $?

[ $A -gt $B ]
echo $?

[ $A > $B ]
echo $?

文件运算符
文件权限运算符
-r读权限(read
-w写权限(write
-x执行的权限(execute

示例如下:

[ -w test.sh ]
echo $?

[ -r test.sh ]
echo $?

[ -x test.sh ]
echo $?


文件测试运算符
-b检测文件是否是块设备文件,如果是,则返回 true
-c检测文件是否是字符设备文件,如果是,则返回 true
-d检测文件是否是目录文件,如果是,则返回 true
-f检测文件是否是普通文件(既不是目录也不是设备文件),如果是,则返回 true
-g检测文件是否设置了SGID位,如果是,则返回 true
-k检测文件是否设置了粘着位(stucky Bit),如果是,则返回 true
-p检测文件是否具名管道,如果是,则返回 true
-u检测文件是否设置了SUID位,如果是,则返回 true
-r检测文件是否可读,如果是,则返回 true
-w检测文件是否可写,如果是,则返回 true
-x检测文件是否可执行,如果是,则返回 true
-s检测文件是否为不为空(文件大小是否不为0),如果不为0,则返回 true
-e检测文件(包括目录)是否存在,如果存在,则返回 true
-a检测文件(包括目录)是否存在,如果存在,则返回 true
逻辑运算符
常用逻辑运算符
赋值A=10赋值运算,返回 true
-a&&与运算,两个表达式都为 true,才返回 true
-o||或运算,有一个表达式都为 true,则返回 true
!!非运算,表达式为 true,则返回 false

示例如下:

A=2
B=3
echo $?
[ $A > $B ] || [ $A < $B]
echo $?
[ $A > $B ] && [ $A < $B ]
echo $?
! [ $A > $B ]
echo $?

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言的数据类型简介

一、基本类型 &#xff08;1&#xff09;六种基本类型 **字符串常量和字符常量的不同 1&#xff09;‘a’为字符常量&#xff0c;”a”为字符串常量 2&#xff09;每个字符串的结尾&#xff0c;编译器会自动添加一个结束标志位‘\0’ “a”包含两个字符’a’和’\0’ &#x…

FPGA优质开源项目 – UDP万兆光纤以太网通信

本文开源一个FPGA项目&#xff1a;UDP万兆光通信。该项目实现了万兆光纤以太网数据回环传输功能。Vivado工程代码结构和之前开源的《UDP RGMII千兆以太网》类似&#xff0c;只不过万兆以太网是调用了Xilinx的10G Ethernet Subsystem IP核实现。 下面围绕该IP核的使用、用户接口…

Qt6.5安装教程——国内源

为什么离线包没了&#xff1f; Qt6开始非商业授权下&#xff0c;不再提供离线安装方式的exe&#xff0c;但源码安装费时费力&#xff0c;所以推荐安装方式已经为在线组件安装方式&#xff0c;包括vs2022、Qt在线安装工具已经成为开发工具新的安装趋势。 Qt是不是要放弃开源&…

服务器日志出现大量NTLM(NT LAN Manager)攻击

日志名称:Security 来源: Microsoft-Windows-Security-Auditing 日期: 2023/8/30 20:57:40 事件 ID:4625 任务类别:登录 级别: 信息 关键字: 审核失败 用户: 暂缺 计算机: WIN-QBJ3ORTR0CF 描述: 帐户登录失败。 主题: 安全 ID:NULL SID 帐户名:- 帐户域:- …

【软考】系统集成项目管理工程师(二)信息系统服务管理【2分】

一、信息技术服务标准 1、组成要素 组成要素描述人员提供IT服务所需的人员及其知识、经验和技能要求【正确选人】流程提供IT服务时&#xff0c;合理利用必要的资源&#xff0c;将输入转化为输出的一组相互关联和结构化的活动【正确做事】技术交付满足质量要求的IT服务应使用的…

搭建个人备忘录中心服务memos、轻量级笔记服务

目录 一、源码 二、官网 三、搭建 四、使用 一、源码 GitHub - usememos/memos: A privacy-first, lightweight note-taking service. Easily capture and share your great thoughts. 二、官网 memos - Easily capture and share your great thoughts 三、搭建 docke…

js原生Unicode转中文

下面这个是一串正常的url https://editor.csdn.net/md?not_checkout10&spm1001.201001.9739&articleId27834274872转码过的字符串 https://editor.csdn.net/md?not_checkout1%26spm1001.2014.3001.9739%26articleid132576228上面这个代码如何再转回去 js通过decod…

springBoot--终

目录 Web定制SpringMVC定制某些mvc配置定制mvc核心组件完全自定义mvc 静态资源静态资源映射静态资源缓存示例自定义静态资源规则配置方式代码方式 欢迎页Favicon&#xff08;网站图标&#xff09;路径匹配策略内容协商制定返回json类型数据制定返回xml类型数据制定返回自定义类…

layui框架学习(43:文件上传模块-下)

上一篇文章介绍文件上传模块使用示例时介绍了done和error事件&#xff0c;这两个事件是在文件上传成功&#xff08;原文&#xff1a;在上传接口请求完毕后触发&#xff0c;但文件不一定是上传成功的&#xff09;及上传失败&#xff08;原文&#xff1a;请求上传出现异常&#x…

一篇文章带你快速入门使用Git

文章目录 前言一、什么是版本控制二、Git与SVN的主要区别三、下载及使用1.安装2.启动Git3.常用的Linux命令4.Git配置 四、Git基本理论1.三个区域2.工作流程 五、Git项目搭建1.创建工作目录与常用指令2.本地仓库搭建3.克隆远程仓库 六、Git文件操作1.文件的四种状态2.查看文件状…

ElasticSearch最全详细使用教程:入门、索引管理、映射详解

导读&#xff1a;本文介绍了ElasticSearch的必备知识&#xff1a;从入门、索引管理到映射详解。 一、快速入门 1. 查看集群的健康状况 http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明&#xff1a;v是用来要求在结果中返回表头 状态值说明 Green - eve…

JavaScript基础语法01——初识JavaScript

哈喽&#xff0c;大家好&#xff0c;我是雷工&#xff01; 最近有项目用到KingFusion软件&#xff0c;由于KingFusion是B/S架构的客户端组态软件&#xff0c;因此在学习KingFusion产品时会涉及许多前端的知识。 像JavaScript语言就是需要用的&#xff0c;俗话说&#xff1a;活到…

工单管理报修系统有什么用?的修工单系统助您解决报修难点

随着互联网的快速发展&#xff0c;许多企业都开始使用“的修”工单管理系统&#xff0c;这是一款企业管理软件&#xff0c;可以帮助管理员用户针对不同的机构、单位以及外部客户的需求来选择性地管理、维护及追踪各种各样的问题和请求&#xff0c;也可用作公司内部员工工作上的…

【数据结构与算法 模版】高频题刷题模版

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【】&#xff0c;使用【】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c;筛选条件为&#xff1a;目标公…

nacos在windows和linux的安装(教程都是完全一样的,因为是java写的)

文章目录 nacos下载Java安装&#xff08;作者用的是java8&#xff09;Windows编辑启动脚本文件编辑配置文件集群配置&#xff08;非常简单&#xff09; Linux其他 nacos下载 点击进入github下载页面nacos手册nacos是用java写的&#xff0c;可以跨平台&#xff0c;根本不存在li…

C. Divisor Chain

题目&#xff1a;样例&#xff1a; 输入 3 3 5 14 输出 3 3 2 1 4 5 4 2 1 6 14 12 6 3 2 1 题意&#xff1a; 输入 x &#xff0c;使得 x 一直减某个数值 一直减到 1&#xff0c;所减的这个数值不能出现两次&#xff0c;输出该过程 x 的变化情况。 思路&#xff1a; 我们可…

uniapp项目实战系列(2):新建项目,项目搭建,微信开发工具的配置

目录 系列文章目录uniapp项目实战系列(1)&#xff1a;导入数据库&#xff0c;启动后端服务&#xff0c;开启代码托管&#xff08;点击跳转&#xff09;1.新建项目2.托管项目的操作&#xff1a;&#xff08;无勾选托管项目可无视&#xff09;3.项目编译预览3.1游览器编译3.2微信…

自然语言处理(五):子词嵌入(fastText模型)

子词嵌入 在英语中&#xff0c;“helps”“helped”和“helping”等单词都是同一个词“help”的变形形式。“dog”和“dogs”之间的关系与“cat”和“cats”之间的关系相同&#xff0c;“boy”和“boyfriend”之间的关系与“girl”和“girlfriend”之间的关系相同。在法语和西…

DP读书:不知道干什么就和我一起读书吧

DP读书&#xff1a;不知道干什么就和我一起读书吧 为啥写博客&#xff1a;好处一&#xff1a;记录自己的学习过程优点二&#xff1a;让自己在各大社群里不那么尴尬推荐三&#xff1a;坚持下去&#xff0c;找到一个能支持自己的伙伴 虽然清楚知识需要靠时间沉淀&#xff0c;但在…

KylinOS配置完静态IP地址后,保存按钮是灰色

问题: 配置完静态IP地址后,保存按钮置灰,并且提示“无效设置IPv4设置:ipv4.gateway:网关与”never-default”不兼容”。 原因: 这是由于禁止添加默认路由导致的。 解决方案: 1、使用nmcli命令: nmcli con modify "有线连接 1" ipv4.never-default no 执…