数学是计算机编程的重要能力。遗憾的是,对shell脚本来说,这个处理过程比较麻烦。在shell脚本中两种途径来进行数学运算。
expr命令
最开始,Bourne shell提供了一个特别的命令用来处理数学表达式。expr命令允许在命令行上处理数学数学表达式。
expr 1+5
6
expr命令能够识别少数的数学和字符串操作符。
特殊例子:expr 52
expr:syntax error
要解决这个问题,对于那些容易被shell错误解释的字符,在它传入expr命令之前,需要使用shell的转义字符将其标出来。expr 5*2
10
现在,麻烦才刚开始,在shell脚本使用的expr命令也同样复杂。
cat test2
/bin/bash
var=1
var=2
var3=$(expr
v
a
r
2
/
var2 /
var2/var1
)
echo The result is $var3
chomod u+x test2
./test2
the result is 2
使用方括号可以把数学表达式表达的更好,可以用美元和方括号将数学表达式围起来。
var1=&[1+5]
echo
v
a
r
16
v
a
r
2
=
var1 6 var2=
var16var2=[$var12]
echo KaTeX parse error: Expected 'EOF', got '#' at position 21: …12 cat test1 #̲!bin/bash car1…var1*(
v
a
r
2
−
var2-
var2−var3)]
echo the final result is $var4
chmod u+x test1
./test1
the final result is 500
用exitqu 去退出脚本
检查退出状态码的列表如下: