shell学习九--let

比眉伴天荒 2022-06-09 07:18 236阅读 0赞

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中,变量是没有类型的,如果变量的值都是数字,那么其可以视为整数,如果有字母,那么就当做字符串。

发表评论

表情:
评论列表 (有 0 条评论,236人围观)

还没有评论,来说两句吧...

相关阅读

    相关 shell学习--let

    let命令是bash中用于计算的工具,提供常用运算符还提供了方幂\\运算符。 在变量的房屋计算中不需要加上$来表示变量,如果表达式的值是非0,那么返回的状态值是0;否则,返