Linux有关Shell算数运算的用法补充笔记

Stella981
• 阅读 431

Linux有关Shell算数运算的用法补充笔记

1、自增自减

Shell的自增自减和其他编程语言的语法基本上是一样的。主要包括四种:前置自增、前置自减、后置自增、后置自减。前置的原理是先修改变量的值,然后将变量的值传递出去。后置的原理是先将变量的值传递出去,然后再修改变量的值。自增符号:++;自减符合:--,操作变量只能是变量,不能是常数或者表达式。

用法示例:

num=10

echo ${num}

输出:10

num++

echo ${num}

输出:11

num--

echo ${num}

输出:10

2、采用$[]进行运算处理

$[]和$(())用法相似,可以用于简单的算数运算。

简单示例:

echo $[5+5]

输出:10

echo $[5*5]

输出:25

echo $[5/2]

输出:2

3、使用expr做运算

expr命令也是用于整数运算。他和其他的算数运算方式不同,需要操作数和操作符号之间用空格隔开,否则会原样输出字符串。

并且特殊的操作符需要转义(比如:*)。

目前expr支持的算数运算符号有加、减、乘、除、求余等。

示例:expr 1+5

输出:1+5

expr 1 + 5

输出:6

expr 3 \* 6

输出:18

4、内建运算命令declare

首先看一个例子:

1、不声明变量num

num=3+5

echo $(num)

输出:3+5

2、声明变量num为数字

declare -i num

num=3+5

echo $(num)

输出:8

说明:如果使用declare显示定义整数变量再去执行3+5系统会解析为算术运算。

本文分享自微信公众号 - IT技术分享社区(gh_a27c0758eb03)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
2年前
mysql的自增id 用完了怎么办?
mysql的自增id用完了怎么办?createtabletest\_auto\_increment\_id(idintUNSIGNEDauto\_incrementPRIMARYKEY,nameVARCHAR(255));执行sql语句!(https://oscimg.oschina.net/oscnet/updfcee9
Wesley13 Wesley13
2年前
mysql 实现 上一行减去下一行
方法1:通过行号来进行加减1.新建表1添加自增行号列(考虑到自增id有丢失数据现象)2.复制上表1为表23.根据表1、表2行号进行where或者leftjoinon的处理\where进行处理的条件为表1表2完全的匹配\leftjoinon处理的条件为 左表完全的匹配设置内存变量
Wesley13 Wesley13
2年前
mysql自增id获取
mysql自增id获取使用max函数:selectmax(id)fromtablename 优点:使用方便快捷。缺点:获取的不是真正的自增id,是表中最大的Id,如果有删除数据的话,那么该值和自增id相差比较大。如果有连表数据,有可能导致数据错乱。使用LAST\_INSERT\_ID
Wesley13 Wesley13
2年前
MySql 面试开发技术点汇总
表结构设计1、为什么一定要设一个主键?答:因为你不设主键的情况下,innodb也会帮你生成一个隐藏列,作为自增主键。所以啦,反正都要生成一个主键,那你还不如自己指定一个主键,在有些情况下,就能显式的用上主键索引,提高查询效率!2、你们主键是用自增还是UUID?答:肯定答自增啊。innod
Wesley13 Wesley13
2年前
JAVA 基础2
一.运算符1.算数运算符::加或正;\:减或负;\:乘;/:除;%:取余;:自增长运算符;写在变量前面表示先自增再赋值;写在变量后面表示先赋值再自增;\:自减少运算符;用法同;2.关系运算符:其返回的一定是布尔值;
Wesley13 Wesley13
2年前
mysql5.6 分页查询优化
mysql5.6分页查询优化场景:表结构:主键(非自增)contentCode(varchar),过滤条件列为updateTime(timeStamp),已经为timestamp建立索引。搜索sql为:SELECTFROMmy_hello_tableWHEREupdat
Wesley13 Wesley13
2年前
JAVA、python、Go的复制语句
一、JAVA的自增、自减语法//对自增(减)变量来说,"a"和"a"是一样的inta100;System.out.println("a:"a);a;System.out.println("a:"
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
京东云开发者 京东云开发者
7个月前
Vitess全局唯一ID生成的实现方案 | 京东云技术团队
为了标识一段数据,通常我们会为其指定一个唯一id,比如利用MySQL数据库中的自增主键。但是当数据量非常大时,仅靠数据库的自增主键是远远不够的,并且对于分布式数据库只依赖MySQL的自增id无法满足全局唯一的需求。因此,产生了多种解决方案,如UUID,Sn