如何在 UNIX 中添加值?

How to add values in UNIX?

我是 Unix 新手。我尝试添加如下所述的值:

var='expr 2 + 2'
echo "Total value: $var"

我希望输出为 Total value: 4。相反,我得到 Total value: expr 2 + 2.

谁能帮我找出我的错误?

简化方法:

var=$((2 + 2))

bc(计算器语言)执行数学计算的方法:

var=$(echo '2 + 2' | bc)
echo "Total value: $var"
Total value: 4
var=$(expr "2" + "2")
echo "Total value: $var"

你需要知道一个shell概念:当你写var='expr 2 + 2'时,那是一个字符串。但是您想获得此命令的结果。 为此,您需要编写 $(expr 2 + 2) 来执行命令,并替换其输出。

这是一个有效的替代品:

var=$(expr 2 + 2)
echo "Total value: $var"

欢迎来到 Unix 世界! ;)

另一种方式:

var=$(( 2 + 2 ))
echo "Total value: $var"

(编辑:不称其为 bashism)