shell编程中的let与(())

let与(()) 在shell编程中是可以互换的;它们在循环语句中控制变量变化非常有用;
使用let语句或者(())我们可以像C语言那样写程序~ 对于变量赋值,判断什么的不用繁琐的$VAR,
-eq等等, C语言中怎么用这里就怎么用,很方便
注:(())算数表达式的值在if和while判断时不用在前面加“$”;在echo输出值时需要加"$"
以下引自http://unix-cd.com/unixcd12/article_2740.html


2.使用let来进行算术计算
语法:
let expression or (( expression ))
例子:
$ x=10          $ x=12
$ y=2           $ let "x <10"   
$ let x=x+2        $ echo $?
$ echo $x         1
12            $ (( x > 10 ))
$ let "x = x / (y+1)"   $ echo $?
$ echo $x         $ 0
4             $ if ((x > 10 ))
$ (( x = x + 1 ))     >  then echo x greater
$ echo $x         >  else echo x not greater
5             fi
             x greater
循环语句通常使用一个增长的数字变量来进行控制。使用let命令,可以在shell脚本中使用算术表达式。这个命令允许使用长的整数运算。在上例中,expression代表一个shell变量的算术表达式和能够被shell识别的操作符,而((  ))可以替let命令。shell能够识别的表达式如下所示:
操作符     描述
-        减去
!        逻辑相反
* / %      乘,除,余数
+ -       加,减
<=  >=  < > 关系比较
== !=      等于不等于
=        赋值
括号能够被用作改变表达式中计算的顺序,就像在
let "x=x/(y+1)"
中一样
注意双引号被用来忽略括号的特殊含义。同样如果你希望使用空格来分隔操作符和操作符的时候,就必须使用双引号,或者(( ))语句:
let " x = x + (y / 2)" 或者(( x= x+ (y / 2) ))
当使用逻辑和关系操作符,(!,<=,>=,<,>,++,~=),的时候,shell会返回一个代码变量,?会反映结果是真还是假,再一次说明,必须使用双引号来防止shell将大于和小于运算符当作I/O重定向。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30272993/viewspace-1755095/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30272993/viewspace-1755095/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值