算术运算符——整数运算
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算术运算符——整数运算相关的知识,希望对你有一定的参考价值。
shell中进行整数运算需要借助一些辅助工具,如:expr、declare、let、(( ))、$[ ]
1、expr有很多不完善之处,此处不写。
2、declare:
declare -i 命令定义整形变量,当使用此命令对变量赋值后,变量便可进行算术运算。
需要注意的是:
如果给整形变量赋值的是一个字符串值,则bash会将变量赋值为0。
使用declare -i命令生成的变量执行算术运算时,各变量之间不能有空格。
[email protected]:~$ declare -i m n [email protected]:~$ m=1 [email protected]:~$ n=2 [email protected]:~$ m+=1 [email protected]:~$ n+=2 [email protected]:~$ echo $m $n 2 4 [email protected]:~$ m=m+n [email protected]:~$ echo $m 6 新声明一个整形变量d,进行计算 [email protected]:~$ declare -i d [email protected]:~$ d=m+n [email protected]:~$ echo $d 10 使用一个未声明为整形的变量c,进行计算 [email protected]:~$ c=m+n [email protected]:~$ echo $c m+n
直接执行declare -i 命令可以查看已经定义的整形变量
[email protected]:~$ declare -i …… declare -ir UID="1000" declare -i a="8" declare -i d="10" declare -i m="6" declare -i n="4"
使用declare -i 命令声明变量后还可以用不同进制的数字表示十进制数
第一种写法: [email protected]:~$ declare -i m [email protected]:~$ m=2#101 [email protected]:~$ echo $m 5 [email protected]:~$ m=8#17 [email protected]:~$ echo $m 15 [email protected]:~$ m=16#b [email protected]:~$ echo $m 11 第二种写法: [email protected]:~$ declare -i n=017 其中017中的0代表八进制 [email protected]:~$ echo $n 15
3、let: let是bash shell的一个内建命令。可以help let查看帮助
[email protected]:~$ i=5 [email protected]:~$ let i=i+1 [email protected]:~$ echo $i 6 [email protected]:~$ let "i = i + 2" [email protected]:~$ echo $i 8
需要注意的是: 使用let时,如果运算表达式没有使用双引号,则表达式之间不能有空格;如果使用了双引号,则表达式之间可以有空格。
建议使用双引号。
4、(( )) :let也可以用(( ))替换
[email protected]:~$ i=3 [email protected]:~$ ((i+=2)) [email protected]:~$ echo $i 5 [email protected]:~$ (( i+= 2)) [email protected]:~$ echo $i 7 [email protected]:~$ (( "i+= 2" )) [email protected]:~$ echo $i 9
(( ))还可以直接一步出结果,有无空格无影响。双括号中不可以使用变量
[email protected]:~$ i=2 [email protected]:~$ echo $((i+= 3 )) 5
5、$[ ] 中括号中有无空格无影响。中括号中可以使用变量
[email protected]:~$ var=$[1+ 2 ] [email protected]:~$ echo $var 3 [email protected]:~$ echo $[3+2] 5 [email protected]:~$ m=2 [email protected]:~$ echo $[$m +1 ] 3
let使用双引号时支持:
+ - * / % >> << & ^ | > < = 以及这些符号与=号结合的符号。
并且还支持 == 和 !=
[email protected]:~$ let "c=m==n" [email protected]:~$ echo $c 0 [email protected]:~$ let "c=m!=n" [email protected]:~$ echo $c 1
本文出自 “甘木” 博客,请务必保留此出处http://ganmu.blog.51cto.com/9305511/1961520
以上是关于算术运算符——整数运算的主要内容,如果未能解决你的问题,请参考以下文章