linux bash整数运算命令let

整数运算一般通过 let 和 expr 这两个指令来实现,如对变量 x 加 1 可以写作:let "x = $x + 1" 或者 x=`expr $x + 1`,个人感觉,二者差不多,前者表达比较简单,择优用之。

在bash中,let可以用来做数值运算。

$ export n=20
$ n=n+1
$ echo $n
n+1

n+1并没有按照数字处理,而是安装字符串串连处理,这时候如果想实现n按照数值进行相加,则就需要let出手了。

$ export n=20
$ let n+=1
$ echo $n

在Bash Shell中,只能进行两个整数间的运算,其结果仍为整数。要进行算术运算,需要使用let命令,语法为:

let expr

expr是一个包含项和操作符的表达式,项可以是一个变量或是一个整数常数,当使用整数常数时,其默认为十进制整数,用户可以用radio#number来指定其它形式的整数,其中radio定义了整数是几进制表示的,number是该整数的值。若radio>10,那么数字字符可从0-9和A-Z。

在表达式中支持的操作符及其含义为:

  • +,-,*,/,% 加,减,乘,除,取模
  • >>,<=,,<,==,!=,&&,||
  • =,+=,-=,*=,/=,%=,<>=,&=,^=,|=

表达式式中也可以使用括号。括号或运算优先级的定义与一般计算机语言中的相同。

let命令具有返回值。当计算结果(若有多个表达式时,以最后一个为准)为0时,返回值为1,否则为0。

当表达式中含有shell的特殊字符(如|)时,需要用引用符('或")将其引用起来。

使用let时还需要注意的时,对于let x+y这样的式子,shell虽然计算了x+y的值,但却将结果丢弃,若不想这样,可以使用let sum=x+y将x+y的结果保存在变量sum中。

另外还可以使用((和))操作符取代let命令,而且这样的话,还可以省去对算术表达式的引用,如果想返回表达式的值,则需用$(())的格式。

例如,let ″j=i*6+2″等价于((j=i*6+2))。

if的条件中,“=”用于比较字符串;“-eq”用于比较整型数。

本文为转载:http://blog.sina.com.cn/s/blog_5ac88b350100arnv.html

标签: linux, linux shell

相关文章推荐

添加新评论 (无需注册,可直接评论)