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

news2024/12/26 21:13:57

文章目录

  • 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

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

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

相关文章

C++017-C++冒泡排序与插入排序

文章目录C017-C冒泡排序与插入排序冒泡排序与插入排序目标冒泡排序排序规则冒泡排序优化插入排序题目描述在线练习:总结C017-C冒泡排序与插入排序 在线练习: http://noi.openjudge.cn/ https://www.luogu.com.cn/ 冒泡排序与插入排序 参考:…

详解基于 Celestia、Eclipse 构建的首个Layer3 链 Nautilus Chain

以流支付为主要概念的Zebec生态,正在推动流支付这种新兴的支付方式向更远的方向发展,该生态最初以Zebec Protocol的形态发展,并从初期的Solana进一步拓展至BNB Chian以及Near上。与此同时,Zebec生态也在积极的寻求从协议形态向公链…

【PyTorch】教程:torch.nn.Hardsigmoid

torch.nn.Hardsigmoid 原型 CLASS torch.nn.Hardsigmoid(inplaceFalse) 参数 inplace (bool) – 默认为 False 定义 Hardsigmoid(x){0if x≤−3,1if x≥3,x/61/2otherwise\text{Hardsigmoid}(x) \begin{cases} 0 & \text{if~} x \le -3, \\ 1 & \text{if~} x \ge 3…

PHP<=7.4.21 Development Server源码泄露漏洞

PHP<7.4.21 Development Server源码泄露漏洞php启动内置web服务器漏洞利用原理因为特殊的原因CTF荒废了一段时间&#xff0c;近期总算再次捡了起来&#xff0c;算是从头开始了吧。近期比赛刚好遇到了这个漏洞&#xff0c;看国内似乎还没有过多的论述&#xff0c;先总结一波。…

【自然语言处理】【大模型】大语言模型BLOOM推理工具测试

相关博客 【自然语言处理】【大模型】大语言模型BLOOM推理工具测试 【自然语言处理】【大模型】GLM-130B&#xff1a;一个开源双语预训练语言模型 【自然语言处理】【大模型】用于大型Transformer的8-bit矩阵乘法介绍 【自然语言处理】【大模型】BLOOM&#xff1a;一个176B参数…

RocksDB 架构

文章目录1、RocksDB 摘要1.1、RocksDB 特点1.2、基本接口1.3、编译2、LSM - Tree2.1、Memtable2.2、WAL2.3、SST2.4、BlockCache3、读写流程3.1、读取流程3.2、写入流程4、LSM-Tree 放大问题4.1、放大问题4.2、compactionRocksDB 是 Facebook 针对高性能磁盘开发开源的嵌入式持…

如何防止用户打开浏览器开发者工具?

大家好&#xff0c;我是前端西瓜哥。作为一名前端开发&#xff0c;在浏览一些网页时&#xff0c;有时会在意一些交互效果的实现&#xff0c;会打开开发者工具查看源码实现。 但有些网站做了防窥探处理&#xff0c;打开开发者工具后&#xff0c;会无法再正常进行网页的操作。 …

Jeston与Px4(四)

ROS控制PX4 上一节里我们已经将mavros和仿真gazebo搭建完毕&#xff0c;这一节将通过ros来实现对接PX4固件的目标 文章目录ROS控制PX41、搭建PX4开发固件环境1、搭建PX4开发固件环境 “永远不要使用sudo来修复权限问题&#xff0c;否则会带来更多的权限问题&#xff0c;需要重…

PMP项目管理引论介绍

目录1. 指南概述和目的1.1 项目管理标准1.2 道德与专业行为规范2 基本要素2.1 项目2.2 项目管理的重要性2.3 项目、项目集、项目组合以及运营管理之间的关系2.3.1 概述2.3.2. 项目组合与项目集管理2.3.3. 运营管理2.3.4. 组织级项目管理和战略2.3.5. 项目管理2.3.6. 运营管理与…

下载BSP并编译内核

前提&#xff1a;用到的开发板100ask_imx6ull 下载BSP 100ask_imx6ull 开发板的 BSP 都保存在 Git 站点上&#xff0c;通过 repo 命令进行统一管理。配置 repo git config --global user.email "user100ask.com" book100ask:~$ git config --global user.name &qu…

spring源码篇(3)——bean的加载和创建

spring-framework 版本&#xff1a;v5.3.19 文章目录bean的加载bean的创建总结getBean流程createBean流程doCreateBean流程bean的加载 beanFactory的genBean最常用的一个实现就是AbstractBeanFactory.getBean()。 以ApplicationContext为例&#xff0c;流程是: ApplicationCon…

01 C语言计算

C语言计算 1、变量 用途&#xff1a;需要存放输入的数据 定义格式&#xff1a;数据类型 变量名&#xff08;用于区分其他变量&#xff09; 变量名格式&#xff1a;只能由字母/下划线/数字构成&#xff0c;首位不能是数字&#xff1b;且变量名不能是标识符 **变量赋值和初始…

Python每日一练(20230305)

目录 1. 正则表达式匹配 ★★★ 2. 寻找旋转排序数组中的最小值 II ★★★ 3. 删除排序链表中的重复元素 II ★★ 1. 正则表达式匹配 给你一个字符串 s 和一个字符规律 p&#xff0c;请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符* 匹配零个或多个…

格式化字符串之在栈上修改got表,执行system(“/bin/sh“)

题目自取&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1sZyC-d47cnrjQ0rmRNLbSg?pwdiung 提取码&#xff1a;iung 这是一题改got表的格式化字符串的例题 这里介绍下pwntools里的一个脚本 fmtstr_payload&#xff1a; 举个例子&#xff0c; payload fmtstr_payl…

谷歌浏览器被hao123网页(或其他网页)劫持了,怎么办?(已解决)

文章目录1、前言2、解决方案2.1、方案一&#xff1a;删除目标内容2.2、方案二&#xff1a;修改浏览器启动时内容2.3、方案三&#xff1a;重命名2.4、方案四&#xff1a;修改WMI脚本2.5、方案五&#xff1a;火绒修复3、总结1、前言 今天打开chrome浏览器&#xff0c;莫名转到hao…

【CMU15-445数据库】bustub Project #2:B+ Tree(下)

Project 2 最后一篇&#xff0c;讲解 B 树并发控制的实现。说实话一开始博主以为这块内容不会很难&#xff08;毕竟有 Project 1 一把大锁摆烂秒过的历史x&#xff09;&#xff0c;但实现起来才发现不用一把大锁真的极其痛苦&#xff0c;折腾了一周多才弄完。 本文分基础版算法…

【uni-app教程】八、UniAPP Vuex 状态管理

八、UniAPP Vuex 状态管理 概念 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。 应用场景 Vue多个组件之间需要共享数据或状态。 关键规则 State&#xff1a…

Linux系统配置nginx

下载安装包wget -c http://nginx.org/download/nginx-1.19.1.tar.gz安装gcc安装包yum install gcc-c安装pre-devel依赖库yum -y install pcre-devel安装openssl依赖库yum -y install openssl openssl-devel解压tar -zxvf 目录名 nginx-1.23.1.tar.gz -C 另外一个目录&#xff0…

QT配置安卓环境(保姆级教程)

目录 下载环境资源 JDK1.8 NDK SDK ​安装QT 配置环境 下载环境资源 JDK1.8 介绍JDK是Java开发的核心工具&#xff0c;为Java开发者提供了一套完整的开发环境&#xff0c;包括开发工具、类库和API等&#xff0c;使得开发者可以高效地编写、测试和运行Java应用程序。 下载…

基于Vue3和element-plus实现一个完整的登录功能

先看一下最终要实现的效果:登录页面:注册页面:(1)引入element-plus组件库引入组件库的方式有好多种,在这里我就在main.js全局引入了.npm i element-plus -Smain.js中代码:import { createApp } from "vue"; //element-plus import ElementPlus from "element-pl…