2016-07-25 211 views
1
#!/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)有助於指出,不應在作業的左側使用'$'。 –

回答

4

錯誤快到 '$答' 在這一行

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

應該

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

'$'是eva luating變量'ans',結果不是將結果賦值給變量'ans',而是試圖將結果賦值爲'0'。

1
#!/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 

想通了! :)