linux命令之let、expr
shell程序中的操作默认都是字符串操作,在运行数学运算符的时候可能得到意想不到的答案:

var=1
var=$var+1
echo $var

将输出 1+1
从这个例子中可以看出shell字符串连接的操作

let 命令
let 命令是 BASH 中用于计算的工具,用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量。
运算符间不能有空格,如果表达式中包含了空格或其他特殊字符,则必须引起来。
var=1

let "var+=1" # 或 let var+=1 这种写法运算符间不能有空格

echo $var

output:
2

let可以用(())代替,let ″j=i*6+2″等价于((j=i*6+2))

expr命令
将需要运算的表达式写入在expr 后面,保证参数与运算符号中间有空格隔开。

var=1

var=`expr $var + 1` #如果没有空格,即var=`expr $var+1` 则输出为1+1

echo $var

output:
2
下面为一个具体的例子:

[root@localhost ~]# cat let.sh
#!/bin/bash
a=4
b=5
let c=a+b
echo $c
let "f = b + c"
echo $f
((d=a+c))
echo $d
e=`expr $a + $d`
echo $e
[root@localhost ~]# bash let.sh
9
14
13
17

最新文章

  1. MySQL基础学习(一) 命令行命令
  2. 键盘上各键对应的ASCII码与扫描码
  3. 【JNI】OPUS压缩与解压的JNI调用(.DLL版本)
  4. java 字符串String操作工具类
  5. 在MAC中安装Compass的方法 (转)
  6. client denied by server configuration
  7. SpringMVC 自定义拦截资料
  8. [T]各种字符串Hash函数比较
  9. Could not load file or assembly 'Oracle.DataAccess' or one of its dependencies. An attempt was made to load a program with an incorrect format.
  10. Yii2.0修改默认控制器
  11. React之组件通信
  12. spring boot 2.0 集成 shiro 和 pac4j cas单点登录
  13. 两步验证杀手锏:Java 接入 Google 身份验证器实战
  14. Django+Xadmin打造在线教育系统(九)
  15. CSS基础以及属性
  16. java内存配置举例
  17. 【UOJ#275】组合数问题(卢卡斯定理,动态规划)
  18. 【python017--函数对象1】
  19. mysql中if()函数使用
  20. 如果忘记了mysql密码怎么办?

热门文章

  1. springBoot 发送邮件图片不显示
  2. Selenium3+python自动化012-测试用例模块化
  3. Github中进行fork后,原仓库更新了如何与原仓库同步
  4. join方法,wait()和sleep()
  5. python:删除文件及文件夹
  6. 《NVMe-over-Fabrics-1_0a-2018.07.23-Ratified》阅读笔记(4)-- Controller Architecture
  7. 题解 【洛谷P1115】最大子段和
  8. 训练20191005 2017-2018 ACM-ICPC Asia East Continent League Final
  9. vga显示原理即相关计算
  10. String类中的equals方法总结(转载)