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重定向。
使用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/