ITPub博客

首页 > Linux操作系统 > Linux操作系统 > shell编程中的let与(())

shell编程中的let与(())

原创 Linux操作系统 作者:yf0609 时间:2015-07-29 10:51:47 0 删除 编辑
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博客 ” ,链接:https://blog.itpub.net/30272993/viewspace-1755095/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: if test 用法
请登录后发表评论 登录
全部评论

注册时间:2015-06-04

  • 博文量
    28
  • 访问量
    71902