当前位置: 首页 > news >正文

shell基础(5)算数计算:运算语法、自增自减

文章目录

  • 1. shell算数运算的特点
  • 2. 运算符一览
  • 3. 运算语法
    • 3.1 整形运算
    • 3.2. 小数运算 ing
  • 4. 自增自减
    • 4.1. a++与++a
    • 4.2. 自加

1. shell算数运算的特点

  • Shell 和其它编程语言不同,Shell 不能直接进行算数运算,必须使用数学计算命令。
  • Shell只支持整数运算,也就是所有可能产生小数的运算都会舍去小数部分。

因为shell默认都是字符串(拼接)操作,如下例子:

lianggao@LiangdeMacBook-Pro ~ % var=1+1
lianggao@LiangdeMacBook-Pro ~ % echo $var
1+1

 
 

2. 运算符一览

在这里插入图片描述

除法求余运算中除数不能为0.

举个例子

lianggao@LiangdeMacBook-Pro ~ % var10=$((10>>2))
lianggao@LiangdeMacBook-Pro ~ % echo $var10
2

 
 

3. 运算语法

3.1 整形运算

算数拓展(推荐)
语法:$((算数表达式))

[root@tbds-10-1-0-38 log]# i=1 
#运算输出
[root@tbds-10-1-0-38 log]# echo $((i+1)) 
2#赋值 
[root@tbds-10-1-0-38 log]# var15=$((12+i)) 
[root@tbds-10-1-0-38 log]# echo $var15 
13#未定义的变量运算(变量默认为0[root@tbds-10-1-0-38 log]# echo $((j+1)) 
3 
[root@tbds-10-1-0-38 log]# echo $((y+1)) 
1 

 
let命令:

lianggao@LiangdeMacBook-Pro ~ % let "var10=1+1"
lianggao@LiangdeMacBook-Pro ~ % echo $var10
2

 

3.2. 小数运算 ing

Shell 本身只支持整数运算,想计算小数就得使用 bc 这个外部的计算器。

 
 

4. 自增自减

4.1. a++与++a

前置自增:先自增在赋值
后置自增:先赋值再自增
操作对象只能是变量,不能是常数

[root@tbds-10-1-0-38 log]# var11=1
[root@tbds-10-1-0-38 log]# let "var12=var11++"
[root@tbds-10-1-0-38 log]# echo $var12
1
[root@tbds-10-1-0-38 log]# var13=1
[root@tbds-10-1-0-38 log]# let "var14=++var13"
[root@tbds-10-1-0-38 log]# echo $var14
2

 

4.2. 自加

#第一种方式
lianggao@LiangdeMacBook-Pro ~ % a=4
lianggao@LiangdeMacBook-Pro ~ % a=$(($a+3))
lianggao@LiangdeMacBook-Pro ~ % echo $a
7#第二种方式
lianggao@LiangdeMacBook-Pro ~ % a=4        
lianggao@LiangdeMacBook-Pro ~ % let "a+=3"
lianggao@LiangdeMacBook-Pro ~ % echo $a
7

相关文章:

shell基础(5)算数计算:运算语法、自增自减

文章目录1. shell算数运算的特点2. 运算符一览3. 运算语法3.1 整形运算3.2. 小数运算 ing4. 自增自减4.1. a与a4.2. 自加1. shell算数运算的特点 Shell 和其它编程语言不同,Shell 不能直接进行算数运算,必须使用数学计算命令。Shell只支持整数运算&#…...

virtio设备input节点

注册virtio_input_node节点,节点类型为VLIB_NODE_TYPE_INPUT。 VLIB_REGISTER_NODE (virtio_input_node) {.name "virtio-input",.sibling_of "device-input",.format_trace format_virtio_input_trace,.flags VLIB_NODE_FLAG_TRACE_SUPP…...

《计算机网络:自顶向下方法》学习笔记——第一章:计算机网络和因特网

计网 第一章 计算机网络和因特网 1.1 什么是因特网 回答这个问题有两种方式 其一,我们能够描述因特网的具体构成,即构成因特网的基本硬件和软件组件;其二,我们能够根据为分布式应用提供服务的联网基础设施来描述因特网。 1.1.…...

PDF 解析格式化输出 API 数据接口

PDF 解析格式化输出 API 数据接口 支持输出 TEXT HTML XML TAG,多种格式输出,超精准识别率。 1. 产品功能 通用的识别接口, 支持标准 PDF 文件解析;多种格式输出,支持 TEXT HTML XML TAG;HTML 包含完美排…...

RL笔记:基于策略迭代求CliffWaking-v0最优解(python实现)

目录 1. 概要 2. 实现 3. 运行结果 1. 概要 CliffWalking-v0是gym库中的一个例子[1],是从Sutton-RLbook-2020的Example6.6改编而来。不过本文不是关于gym中的CliffWalking-v0如何玩的,而是关于基于策略迭代求该问题最优解的实现例。 CliffWalking-v0的…...

350. 两个数组的交集 II

两个数组的交集 II 给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结…...

Android仿微信选择图片

效果展示首先先添加用到的权限<uses-permission android:name"android.permission.INTERNET" /><!--获取手机存储卡权限--><uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:nam…...

python+嵌入式——串口通信篇(收发解包)

目录前言安装pyserialpyserial大致概括整体流程硬件连接例子(简单版)详细使用serial初始化参数发包收包收包检查包并解包python struct模块结语前言 这几年&#xff0c;自己也做了一些嵌入式机器人。在整个开发的过程中&#xff0c;调通信通常会花费一段比较长的时间&#xff…...

剖析G1 垃圾回收器

简单回顾 在Java当中&#xff0c;程序员在编写代码的时候只需要创建对象&#xff0c;从来不需要考虑将对象进行释放&#xff0c;这是因为Java中对象的垃圾回收全部由JVM替你完成了(所有的岁月静好都不过是有人替你负重前行)。 而JVM的垃圾回收由垃圾回收器来负责&#xff0c;在…...

如何打造一款专属于自己的高逼格电脑桌面

作为一名电脑重度使用者&#xff0c;你是否拥有一款属于你自己的高逼格电脑桌面呢&#xff1f;你是不是也像大多数同学一样&#xff0c;会把所有的内容全部都堆积到电脑桌面&#xff0c;不仅找东西困难&#xff0c;由于桌面内容太多还会导致C盘空间不足&#xff0c;影响电脑的反…...

【C++】string的使用及其模拟实现

文章目录1. STL的介绍1.1 STL的六大组件1.2 STL的版本1.3 STL的缺陷2. string的使用2.1 为什么要学习string类&#xff1f;2.2 常见构造2.3 Iterator迭代器2.4 Capacity2.5 Modifiers2.6 String operations3. string的模拟实现3.1 构造函数3.2 拷贝构造函数3.3 赋值运算符重载和…...

怀念在青鸟的日子

时间过的可真快&#xff0c;一转眼来到了2023年&#xff01;我初中上完就没有在念&#xff0c;下了学门步入社会&#xff0c;那时的我一片迷茫&#xff0c;不知道该去干什 么&#xff0c;父母说要不去学挖掘机、理发、修车...我思考再三&#xff0c;一个都没有我喜欢的&#xf…...

学习记录---Python内置类型

文章目录字符串split()列表常见操作列表相减字典创建普通创建eval(s)添加或更新元素d[t] 1d.update({c: 3}){**d1, **d2} **字典解包装运算符删除元素 d.pop(c)属性d.items()d.keys()d.values()访问元素d[Name]d.get(score)遍历字典for key in dictfor key, values in dict.it…...

Python笔记 -- 列表

文章目录1、列表简介2、修改、添加、删除元素2.1、添加2.2、删除3、排序、倒序4、遍历列表5、创建数值列表6、列表切片7、列表复制8、元组1、列表简介 在Python中用方括号[]表示列表&#xff0c;用逗号隔开表示其元素 通过索引访问列表 names [aa,bb,cc,dd]print(names[0]) …...

谈谈UVM中的uvm_info打印

uvm_info宏的定义如下&#xff1a; define uvm_info(ID,MSG,VERBOSITY) \begin \if (uvm_report_enabled(VERBOSITY,UVM_INFO,ID)) \uvm_report_info (ID, MSG, VERBOSITY, uvm_file, uvm_line); \end 从这里可以看出uvm_info由两部分组成&#xff1a;uvm_report_enabled(VER…...

矩阵理论1 集合上的等价关系(equivalence relations on a set S)

定义 对于一个集合S, 如果集合E⊂SS\mathcal{E} \subset S\times SE⊂SS满足以下条件 自反性: 对于∀s∈S,都有(s,s)∈E\forall s\in S, 都有 (s, s) \in \mathcal{E}∀s∈S,都有(s,s)∈E对称性: (s,t)∈E⇔(t,s)∈E(s,t) \in \mathcal{E} \Leftrightarrow (t,s)\in \mathcal…...

【网络监控】Zabbix详细安装部署(最全)

文章目录Zabbix详细安装部署环境准备安装依赖组件访问初始化配置Zabbix详细安装部署 Zabbix 是一个高度集成的网络监控解决方案&#xff0c;可以提供企业级的开源分布式监控解决方案&#xff0c;由一个国外的团队持续维护更新&#xff0c;软件可以自由下载使用&#xff0c;运作…...

阿里云轻量服务器--Docker--Nacos安装(使用外部Mysql数据存储)

前言&#xff1a;docker 安装nacos 如果不设置外部的mysql 默认使用内嵌的内嵌derby为数据源&#xff0c;这个时候如果&#xff0c;重新部署nacos 则会造成原有数据丢失情况&#xff1b; 1 默认安装的nacos 启动后使用的是内嵌的存储&#xff1a; 2 使用外部mysql 作为存储&a…...

unity开发知识点小结01

unity对象生命周期函数 Awake():最早调用&#xff0c;所以可以实现单例模式 OnEnable&#xff08;&#xff09;&#xff1a;组件激活后调用&#xff0c;在Awake后调用一次 Stat&#xff08;&#xff09;&#xff1a;在Update&#xff08;&#xff09;之前&#xff0c;OnEnable…...

软件系统[软件工程]

What’s the link? They all involve outdated (legacy) software technology. All have had huge socio-economical impact. Prompting national lockdowns. Spreadsheet workflow error led to thousands of preventable infections and deaths. Huge losses of citizen dat…...

“AI 辅助数据库优化 - 从慢查询分析到索引自动推荐“

AI 辅助数据库优化 - 从慢查询分析到索引自动推荐 问题场景 数据库优化的常见挑战&#xff1a; 慢查询排查依赖 DBA 经验&#xff0c;门槛高索引创建盲目&#xff0c;有时反而降低性能SQL 改写凭感觉&#xff0c;缺乏系统方法执行计划看不懂&#xff0c;不知道优化方向性能问题…...

Qwen3.5-9B-AWQ-4bit开源大模型部署教程:低成本多模态AI应用落地方案

Qwen3.5-9B-AWQ-4bit开源大模型部署教程&#xff1a;低成本多模态AI应用落地方案 1. 模型介绍与核心能力 Qwen3.5-9B-AWQ-4bit是一个经过量化的多模态开源大模型&#xff0c;特别适合需要图像理解能力的应用场景。这个版本通过AWQ&#xff08;Activation-aware Weight Quanti…...

SDXL-Turbo在虚拟现实内容创作中的应用

SDXL-Turbo在虚拟现实内容创作中的应用 1. 引言 虚拟现实内容开发一直面临着一个核心痛点&#xff1a;高质量素材的制作既耗时又费力。传统的VR环境创建需要美术人员手动绘制纹理、设计贴图&#xff0c;一个简单的场景可能就需要数天甚至数周的工作量。 想象一下这样的场景&…...

自己做SEO时有哪些容易被忽视的关键点_SEO 自己怎么做

自己做SEO时容易被忽视的关键点 在当今的互联网时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;已经成为每个网站主的必修课。在自己做SEO时&#xff0c;有些关键点往往会被忽视&#xff0c;导致网站的流量和排名并未达到最佳效果。本文将深入探讨这些容易被忽视的关…...

5分钟掌握D3KeyHelper:暗黑3玩家的智能按键助手

5分钟掌握D3KeyHelper&#xff1a;暗黑3玩家的智能按键助手 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面&#xff0c;可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 还在为暗黑破坏神3中复杂的技能循环而手忙…...

SMUDebugTool:深度控制AMD Ryzen硬件参数的系统调试解决方案

SMUDebugTool&#xff1a;深度控制AMD Ryzen硬件参数的系统调试解决方案 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: http…...

WinForms界面美化:用SunnyUI的UILight控件做个状态指示灯(附完整代码)

WinForms界面美化实战&#xff1a;用SunnyUI的UILight控件打造专业状态指示灯 在桌面应用开发中&#xff0c;状态指示是用户界面不可或缺的元素。传统的WinForms控件往往显得单调乏味&#xff0c;而SunnyUI的UILight控件为我们提供了一种简单高效的解决方案。这个圆形指示灯控…...

Qwen3.5-9B镜像安全加固:非root用户运行+端口绑定限制+HTTPS代理配置

Qwen3.5-9B镜像安全加固&#xff1a;非root用户运行端口绑定限制HTTPS代理配置 1. 项目概述 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型&#xff0c;具备强大的逻辑推理、代码生成和多轮对话能力。该模型支持多模态理解&#xff08;图文输入&#xff09;和长上下文处理&a…...

视觉增强实战:OpenClaw调用Qwen3.5-9B实现截图内容分析与报告生成

视觉增强实战&#xff1a;OpenClaw调用Qwen3.5-9B实现截图内容分析与报告生成 1. 为什么需要视觉增强的自动化助手&#xff1f; 作为一名经常需要处理大量学术资料的研究者&#xff0c;我长期被两个问题困扰&#xff1a;一是阅读文献时遇到复杂的图表需要反复对照文字说明&am…...

openclaude:模型接入 Code 工具链

作为一名长期关注人工智能工程化落地的开发者&#xff0c;我深知本地大模型在隐私保护和成本控制上的优势&#xff0c;但往往苦于缺乏像 Claude Code 那样强大的工具调用能力。很多时候&#xff0c;我们拥有强大的模型&#xff08;如 DeepSeek、Ollama 本地部署&#xff09;&am…...