Shell脚本:命令未找到错误

问题描述:

#!/bin/bash 

calc() 
{ 
     n1=$1 
     op=$2 
     n2=$3 
     ans=0 

     if [ $# -eq 3 ] 
       then 
       $ans=$(expr $n1 $op $n2); 
       echo "$n1 $op $n2 = $ans" 
       return $ans 
     else 
       echo "Needs 3 parameters!" 
     fi 

     return; 

} 

我用Google搜索了很多,但我仍然无法找到我的代码中的错误,我知道这是一个非常简单的代码,但请帮助我,我是全新的,并试图自学。Shell脚本:命令未找到错误

我得到的错误是

line 12: 0=11: command not found 

预先感谢您

+0

[shellcheck](http://www.shellcheck.net)有助于指出,不应在作业的左侧使用'$'。 –

错误快到 '$答' 在这一行

$ans=$(expr $n1 $op $n2); 

应该

ans=$(expr $n1 $op $n2); 

'$'是eva luating变量'ans',结果不是将结果赋值给变量'ans',而是试图将结果赋值为'0'。

#!/bin/bash 

calc() 
{ 
     n1=$1 
     op=$2 
     n2=$3 
     ans=0 

     if [ $# -eq 3 ] 
       then 
       ans=$(expr $n1 $op $n2) 
       echo "$n1 $op $n2 = $ans" 
       return $ans 
     else 
       echo "Needs 3 parameters!" 
     fi 

     return 

} 

calc 6 + 5 

想通了! :)