Shell中整数自增的几种方式
Shell中整数自增的几种方式
在Shell脚本中,用于while或for循环中经常要涉及到整数自增的情况,下面罗列下可能的方式
【方式一】declare -i来声明整数变量
root@localhost:~# declare -i x=1
root@localhost:~# x+=1
root@localhost:~# echo $x
2
【方式二】使用let命令
root@localhost:~# i=1
root@localhost:~# let i+=1
root@localhost:~# echo $i
2
root@localhost:~# i=1
root@localhost:~# let i=$i+1
root@localhost:~# echo $i
2
root@localhost:~# i=1
root@localhost:~# let i++
root@localhost:~# echo $i
2
root@localhost:~# i=1
root@localhost:~# let ++i
root@localhost:~# echo $i
2
【方式三】使用(())
root@localhost:~# i=1
root@localhost:~# ((++i))
root@localhost:~# echo $i
2
root@localhost:~# i=1
root@localhost:~# ((i++))
root@localhost:~# echo $i
2
【方式四】使用expr命令
root@localhost:~# i=1
root@localhost:~# i=`expr $i + 1`
root@localhost:~# echo $i
2
root@localhost:~# i=1
root@localhost:~# i=$(expr $i + 1)
root@localhost:~# echo $i
2
【方式五】使用$(())
root@localhost:~# i=1
root@localhost:~# i=$(($i + 1))
root@localhost:~# echo $i
2
【方式六】使用$[]
root@localhost:~# i=1
root@localhost:~# i=$[$i + 1]
root@localhost:~# echo $i
2
备注:
1)使用i=$(expr $i + 1)比i=`expr $i + 1`要好些
2)使用(())或者$(())速度要比expr快
3)如果不考虑速度问题,涉及到不同平台的兼容,最好使用expr
4)Bash(sh)上使用比较多的情形:let,expr,(())
Shell中整数自增的几种方式的更多相关文章
- shell中取字符串子串的几种方式 截取substr
shell中取字符串子串的几种方式 echo "123456789" | awk '{print substr($0,5,2)}' 截取 1)awk中函数substrsubstr( ...
- (转)Shell中获取字符串长度的七种方法
Shell中获取字符串长度的七种方法 原文:http://blog.csdn.net/jerry_1126/article/details/51835119 求字符串操作在shell脚本中很常用,下面 ...
- 在shell中变量的赋值有五种方法!
转至:https://blog.csdn.net/weibo1230123/article/details/82085226 在shell中变量的赋值有五种 :使用 read 命令,直接赋值,使用命令 ...
- c#ASP.NET中页面传值共有这么几种方式
一.目前在ASP.NET中页面传值共有这么几种方式: 1.Response.Redirect("http://www.hao123.com",false); 目标页面和原页面可以在 ...
- strus2中获取表单数据 两种方式 属性驱动 和模型驱动
strus2中获取表单数据 两种方式 属性驱动 和模型驱动 属性驱动 /** * 当前请求的action在栈顶,ss是栈顶的元素,所以可以利用setValue方法赋值 * 如果一个属性在对象栈,在页面 ...
- 怎样在Android开发中FPS游戏实现的两种方式比较
怎样在Android开发中FPS游戏实现的两种方式比较 如何用Android平台开发FPS游戏,其实现过程有哪些方法,这些方法又有哪些不同的地方呢?首先让我们先了解下什么是FPS 英文名:FPS (F ...
- Struts2中访问web元素的四种方式
Struts2中访问web元素的四种方式如下: 通过ActionContext来访问Map类型的request.session.application对象. 通过实现RequestAware.Sess ...
- HTML中设置背景图的两种方式
HTML中设置背景图的两种方式 1.background background:url(images/search.png) no-repeat top; 2.background-image ...
- [Android] Android ViewPager 中加载 Fragment的两种方式 方式(二)
接上文: https://www.cnblogs.com/wukong1688/p/10693338.html Android ViewPager 中加载 Fragmenet的两种方式 方式(一) 二 ...
随机推荐
- socket中的绑定
- nginx自动切割日志脚本
#!/bin/bash savepath_log='/data/logs' nglogs='/data/logs' mkdir -p $savepath_log/$(date +%Y)/$(date ...
- rest framework 之前
在开始rest framework之前,我们先来了解一下什么是restful rest 是一种软件架构风格,Representational state Transfer 它从资源的角度去看整个网络, ...
- 用 CSS 实现酷炫的动画充电效果
巧用 CSS 实现酷炫的充电动画 循序渐进,看看只使用 CSS ,可以鼓捣出什么样的充电动画效果. 画个电池 当然,电池充电,首先得用 CSS 画一个电池,这个不难,随便整一个: 欧了,勉强就是它了. ...
- Shell基础(一):Shell基础应用、简单Shell脚本的设计、使用Shell变量、变量的扩展应用
一.Shell基础应用 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 切换用户的Shell环境 2> 练习命令历史.命令别名 3 ...
- 2019 牛客多校第六场 D Move
题目链接:https://ac.nowcoder.com/acm/contest/886/D 题解摘自官方题解 题目大意 有 K 个体积相同的箱子,有 N 个体积相同或相异的物品,现要按照如下策略装箱 ...
- 【Stanford Machine Learning Open Course】学习笔记目录
这里是斯坦福大学机器学习网络课程的学习笔记. 课程地址是:https://class.coursera.org/ml-2012-002/lecture/index 课程资料百度网盘分享链接:https ...
- form表单和CSS基础
form 表单 input type="" 表单的组合标签,用来确定需要的是什么输入类型 type属性值: 文本输入框:text 密码输入框:password 单选按钮:radio ...
- java-Day01
什么是java语言 1995由美国SUN公司推出的高级编程语言(后2009年甲骨文公司收购SUN公司) 常用的DOS命令 盘符切换命令:盘符: 查看当前文件夹:dir 进入文件命令:cd 文件夹名 退 ...
- python+tushare获取股票每日停复牌信息
接口:suspend 更新时间:不定期 描述:获取股票每日停复牌信息 注:tushare模块下载和安装教程,请查阅我之前的文章 输入参数 名称 | 类型 | 必 ...