代码之家  ›  专栏  ›  技术社区  ›  Michael

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

  •  0
  • Michael  · 技术社区  · 7 年前

    我是bash的新手。

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

    ./scr3 50 98
    

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

    the result is: expr 50+98
    

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   Charles Duffy    7 年前

    为什么?因为 echo 打印它的参数,然后你就通过了 expr 作为论据。

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

    …虽然这是一个较小的变化(尽管是非常低效的代码; expr $(( )) 在1992年的POSIX sh标准中,且不应在新开发中使用)仅为:

    echo "The result is: $( expr "$1" + "$2" )"
    
    推荐文章