为什么脚本中未总结两个数字?

时间:2019-01-08 22:59:04

标签: bash unix

我刚参加bash。 我尝试创建总结两个数字的脚本:

这是脚本:

echo "the result is:" expr $1+$2

这是我如何调用脚本:

./scr3 50 98

这是执行脚本后得到的结果:

the result is: expr 50+98

当我得到带有两个汇总数字的字符串时,我希望得到两个数字的汇总。

我的问题是为什么我没有得到两个数字的总和结果?

1 个答案:

答案 0 :(得分:1)

为什么?因为echo会打印其参数,所以您将expr作为参数传递。

最佳做法是:

echo "The result is: $(( $1 + $2 ))"

...尽管变化较小(尽管代码效率很低; expr是1970年代的人工产物,与1992年POSIX sh标准中$(( ))的引入无关,并且应该永远不会在新的开发中使用)只是:

echo "The result is: $( expr "$1" + "$2" )"