Bash 为什么两个数字没有在脚本中汇总?

Bash 为什么两个数字没有在脚本中汇总?,bash,unix,Bash,Unix,我是bash的新手。 我尝试创建一个脚本,其中总结了以下数字: 下面是脚本: echo "the result is:" expr $1+$2 下面是我如何称呼脚本的: ./scr3 50 98 下面是脚本执行后得到的结果: the result is: expr 50+98 当我得到包含两个汇总数字的字符串时,我希望得到两个数字的汇总 我的问题是为什么我没有得到这两个数字的汇总结果?为什么?因为echo打印它的参数,并且您将expr作为参数传递 最佳做法备选方案是: echo "The

我是bash的新手。 我尝试创建一个脚本,其中总结了以下数字:

下面是脚本:

echo "the result is:" expr $1+$2
下面是我如何称呼脚本的:

./scr3 50 98
下面是脚本执行后得到的结果:

the result is: expr 50+98
当我得到包含两个汇总数字的字符串时,我希望得到两个数字的汇总


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

为什么?因为
echo
打印它的参数,并且您将
expr
作为参数传递

最佳做法备选方案是:

echo "The result is: $(( $1 + $2 ))"
…尽管一个较小的变化(尽管是非常低效的代码;
expr
是20世纪70年代的产物,与1992年POSIX sh标准中引入的
$(())
无关,并且不应在新开发中使用)只是:

echo "The result is: $( expr "$1" + "$2" )"
您根本没有告诉它在这里运行
expr
。您正在将
expr
作为参数传递。传递给echo的参数是要打印的字符串。