原标题:如何在 Bash 中对变量递增或者递减

编写 Bash脚本时最常见的算术运算之一是递增和递减变量。这通常在循环中用作计数器,但它也可以在脚本的其他地方出现。

递增和递减意味着分别从数值变量的值中添加或减去值(通常为 1 )。可以使用双括号 ((...)) 和 $((...)) 或使用内置的 let命令执行算术扩展。

在 Bash 中,有多种方法可以加/减变量。本文解释了其中的一些内容。

使用 + 和 - 操作员

加/减变量的最简单方法是使用 + 和 - 运算符。

i=$((i+1))

((i=i+1))

let "i=i+1"

i=$((i-1))

((i=i-1))

let "i=i-1"

此方法允许您将变量递增/递减所需的任何值。

以下是在 until 循环中递增变量的示例:

i=0

until [ $i -gt 3 ]

do

echo i: $i

((i=i+1))

done

i: 0

i: 1

i: 2

i: 3

使用 += 与 -= 运算符

除了上面解释的基本运算符之外, bash 还提供赋值运算符 += 和 -= 。这些运算符用于使用运算符后指定的值递增/递减左操作数的值。

((i+=1))

let "i+=1"

((i-=1))

let "i-=1"

在接下来的 while 循环中,我们将 i 变量的值递减 5 。

i=20

while [ $i -ge 5 ]

do

echo Number: $i

let "i-=5"

done

Number: 20

Number: 15

Number: 10

Number: 5

使用 ++ 和 -- 运算符

在 ++ 和 -- 分别运营商增量和减量,其操作 1 和返回值。

((i++))

((++i))

let "i++"

let "++i"

((i--))

((--i))

let "i--"

let "--i"

可以在操作数之前或之后使用运算符。它们也被称为:

•前缀增量:++i

•前缀减量:--i

•后缀增量:i++

•后缀减量:i--

前缀运算符首先让变量加/减 1 ,然后返回变量的新值。后缀运算符在变量加/减之前返回运算符的值。

如果您只想增加/减少变量,那么如果您使用前缀或后缀运算符则没有区别。只有在某些其他操作中使用运算符的结果或将其分配给另一个变量时,它才会有所不同。

以下示例演示了 ++ 操作符在其操作符之前和之后使用时的工作方式:

x=5

y=$((x++))

echo x: $x

echo y: $y

x: 6

y: 5

x=5

y=$((++x))

echo x: $x

echo y: $y

x: 6

y: 6

下面是在 bash 脚本中使用的示例:

#!/bin/bash

i=0

while true; do

if [[ "$i" -gt 3 ]]; then

exit 1

fi

echo i: $i

((i++))

done

使用这些运算符的缺点是变量只能递增或递减 1 。

结论

Bash 中的变量的递增和递减可以以许多不同的方式执行。无论使用何种方法,结果都是一样的。返回搜狐,查看更多

责任编辑:

linux shell 递增,如何在 Bash 中对变量递增或者递减相关推荐

  1. Linux shell 对话框,如何在 Bash Shell 脚本中显示对话框

    原标题:如何在 Bash Shell 脚本中显示对话框 这个教程给出几个如何使用类似zenity和whiptail的工具在Bash Shell 脚本中提供消息/对话框的例子.使用这些工具,你的脚本能够 ...

  2. linux shell 三元运算符,语法 - Bash中的三元运算符(?:)

    语法 - Bash中的三元运算符(?:) 有没有办法做这样的事情 int a = (b == 5) ? c : d; 用Bash? 14个解决方案 346 votes ternary operator ...

  3. linux 星号 通配符,如何在bash中转义通配符/星号字符?

    简短的回答 像其他人所说的那样 - 你应该总是引用变量来防止奇怪的行为.所以使用echo"$ foo"代替echo $ foo. 长期回答 我确实认为这个例子值得进一步解释,因为它 ...

  4. linux shell转换时间格式,在bash中转换日期格式

    慕哥9229398 #since this was yesterdaydate -dyesterday +%Y%m%d#more precise, and more recommendeddate - ...

  5. 如何在 bash 中使用索引数组

    数组是一种数据结构,表示具有相同数据类型的对象集合.bash shell中支持两种类型的数组:关联数组或索引数组.在本文中,将演示如何在 bash 中使用索引数组.以下使用 shell 示例来说明索引 ...

  6. 如何在 bash 中使用键值字典

    在字典中,字典存储一组键,每个键都有一个与之关联的值.可以使用对应的键在字典中插入.检索或更新值.字典数据结构针对基于键值的快速检索进行了优化,因此通常使用哈希表来实现.在不同的编程语言中,字典通常有 ...

  7. awk,gawk调用shell,bash中的变量 笔记221106

    awk,gawk调用shell,bash中的变量 笔记221106 "'${变量名}'" 双 包 单 包 ${} 包 变量名 "'"${变量名}"'& ...

  8. 一个如何在bash中使用getopts的例子

    本文翻译自:An example of how to use getopts in bash I want to call myscript file in this way: 我想以这种方式调用my ...

  9. 2.7-egrep及bash中的变量

    egrep及扩展的正则表达式 egrep=grep -E grep [OPTIONS] PATTERN [FILE...] 扩展正则表达式的元字符: 字符匹配: .: []: [^]: 次数匹配: * ...

最新文章

  1. pyqt qdialog 默认按钮_python – QDialog无法从主窗口打开(pyQt)
  2. 如何测试ASP.NET Core Web API
  3. 深入理解signed、unsigned 关键字
  4. 爱玛士关于爬虫的scrapy框架的心得
  5. Unity UGUI - Canvas / Camera
  6. The Design and Implementation of Open vSwitch
  7. 关于模板函数/模板类编译成DLL
  8. 剪映电脑版_2020 年双十一要不要选一个平板电脑?
  9. 【转】WPF中关于样式和模板的区别
  10. 通配符在DNS系统中的应用
  11. 创业编程七个错误认识
  12. apache tomcat php mysql 配置_Apache与Tomcat服务器整合的基本配置方法及概要说明
  13. 我对Backbone的认识
  14. 利用Tushare下载多个股票数据并进行数据处理以及数据合并
  15. Craps赌博游戏-python3
  16. c语言中排列组合函数,排列组合c怎么算公式是什么
  17. C++ BMP转JPG方法一
  18. Qcon 实时音视频专场:实时互动的最佳实践与未来展望
  19. NPOI之Excel——合并单元格、设置样式、输入公式
  20. 7.3 向量的数量积与向量积

热门文章

  1. c语言返回值作用,c语言的返回值是什么意思啊?
  2. C++ 获取string字符串长度的三种方法
  3. 开展视频营销的流程和策略
  4. python中的repr是什么意思_理解Python中的repr()函数
  5. python repr函数
  6. GetPrivateProfileString 中文乱码解决
  7. AddressSanitizer的错误输出分析
  8. ureport2 导出word合并单元格不兼容wps问题
  9. 微信天龙八部游戏忘了哪个服务器,新天龙八部玩家苦寻当年的师傅 8年间玩了十个服务器...
  10. SMC IRV系列手动真空调节器低压控制性能考核试验