shell学习九--let
let命令是bash中用于计算的工具,提供常用运算符还提供了方幂**运算符。
在变量的房屋计算中不需要加上$来表示变量,如果表达式的值是非0,那么返回的状态值是0;否则,返回的状态值是1。
格式:let arg1 [arg2 ……]
说明:
与expr命令相比,let命令更简洁直观
[ ]表示可以有多个参数,arg n (n=1,2…)
运算符与操作数据之间不必用空格分开,但表达式与表达式之间必须要用空格分开
当运算符中有<、>、&、|等符号时,同样需要用引号(单引号、双引号)或者斜杠来修饰运算符
let赋值表达式功能等同于((赋值表达式))
实例1:
[root@node01 day4]# i=2
[root@node01 day4]# let i=i+8
[root@node01 day4]# echo $i
10
[root@node01 day4]# i=2
[root@node01 day4]# i=i+8 去掉let定义
[root@node01 day4]# echo $i
i+8
[root@node01 day4]#
let i=i+8 等同于((i=i+8))后者效率更高
实例2:
[root@node01 day4]# let s=(2+3)*4
[root@node01 day4]# echo $s
20
例子3:
[root@node01 day4]# vi test1.sh
#!/bin/bash
let a=3+4 b=9*3
echo $a $b
[root@node01 day4]# sh test1.sh
7 27
例子4:[root@node01 day4]# vi test2.sh
#!/bin/bash
t=122
t=$t+1
echo $t
[root@node01 day4]# sh test2.sh
122+1
例子5:
[root@node01 day4]# vi test3.sh
#!/bin/bash
no1=4
no2=3
let no=no1+no2
echo $no
[root@node01 day4]# sh test3.sh
7
这其中的let可以用(())代替
1:在shell 中$() 与 ``等效。执行中间包含的命令语句,返回执行结果。
2:从效率来说let==(()) > expr > bc。let和(())运行是内建命令,使用相同的算法。
3:let 和 expr 的运算是整数运算,不包括浮点预算。
4:expr和bc是外部程序,expr的体积几乎等于bc的1/3,执行一次装入内存所消耗的时间就不一样。
5:从运算能力来说,bc排第一位
在SHELL中,变量是没有类型的,如果变量的值都是数字,那么其可以视为整数,如果有字母,那么就当做字符串。
还没有评论,来说两句吧...