我刚参加bash。 我尝试创建总结两个数字的脚本:
这是脚本:
echo "the result is:" expr $1+$2
这是我如何调用脚本:
./scr3 50 98
这是执行脚本后得到的结果:
the result is: expr 50+98
当我得到带有两个汇总数字的字符串时,我希望得到两个数字的汇总。
我的问题是为什么我没有得到两个数字的总和结果?
答案 0 :(得分:1)
为什么?因为echo
会打印其参数,所以您将expr
作为参数传递。
最佳做法是:
echo "The result is: $(( $1 + $2 ))"
...尽管变化较小(尽管代码效率很低; expr
是1970年代的人工产物,与1992年POSIX sh标准中$(( ))
的引入无关,并且应该永远不会在新的开发中使用)只是:
echo "The result is: $( expr "$1" + "$2" )"