shell expr

expr命令用于整数计算和字符串处理,需要在运算符周围添加空格并转义特殊字符。在使用变量时需加$前缀。当进行复杂计算时,可能需要使用()进行分组并转义。expr的结果会直接输出,若要赋值给变量,需用反引号包围表达式。虽然expr使用较繁琐,但仍然是shell脚本中的一种工具。
摘要由CSDN通过智能技术生成

作用:进行整数计算

 expr是evaluate expressions的缩写,译为“表达式求值”。

除了可以实现整数计算,还可以结合一些选项对字符串进行处理,例如计算字符串长度、字符串比较、字符串匹配、字符串提取等。

用法:expr 表达式

·出现在表达式中的运算符、数字、变量和小括号的左右两边至少要有一个空格,否则会报错。

·有些特殊符号必须用 \ 进行转义(屏蔽其特殊含义),比如 * 和 () 如果不用 \ 转义,那么shell会把他们误解为正则表达式中的符号 ( * 对应通配符, ()对应分组)。

·使用变量时要加 $前缀

实例1:expr整数计算举例

 expr 2 +3           ----------->错误:加号和3之间没有空格

 expr:语法错误

 expr 4 * 5           ----------->错误:乘号没有转义

 expr:语法错误

 expr 4 \* 5          ----------->使用\转义后是正确的

 20

 expr ( 2 + 3 \) \* 4    ------->小括号也要转义

 bash:未预期的符号 2附近有语法错误

 expr \( 2 + 3 \) \* 4   ------->使用 \转义后才是正确的

20

n=3

 expr n + 2               ------------------>使用变量时要加$

 expr :非整数参数

 expr $n + 2      ------------->加上$才是正确的

5

m=7

 expr $m \* \( $n + 5 \)

 56

以上时直接使用expr命令,计算结果会直接输出,如果你希望计算结果赋值给变量,那么需要将整个表达式用反引号``(位于tab上方的键)包围起来,如下:

实例2:

 m=5

 n=` expr $m + 10 `

 echo $n

 15

 expr计算使用比较麻烦,建议使用(())、let 或者 $[]来进行整数计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值