Linux 意外标记附近的语法错误';elif';在狂欢节上

Linux 意外标记附近的语法错误';elif';在狂欢节上,linux,bash,Linux,Bash,我正在使用一种新的语言,我想它是linux,但老实说,我不知道;我们通过一个名为putty的程序连接到某个服务器来进行编程。作为作业的一部分,我必须创建一个计算器程序,以两个数字和一个运算符作为分段,但我得到了一堆意想不到的令牌错误。我很迷茫,我的课文和我的教授都没有帮助 #!/bin/bash function add { echo $(( $1 + $2 )) } function subtract { echo $(( $1 - $2 )) } fun

我正在使用一种新的语言,我想它是linux,但老实说,我不知道;我们通过一个名为putty的程序连接到某个服务器来进行编程。作为作业的一部分,我必须创建一个计算器程序,以两个数字和一个运算符作为分段,但我得到了一堆意想不到的令牌错误。我很迷茫,我的课文和我的教授都没有帮助

#!/bin/bash

function add {
        echo $(( $1 + $2 ))
}

function subtract {
        echo $(( $1 - $2 ))
}

function multiply {
        echo $(( $1 x $2 ))
}

function divide {
        echo $(( $1 / $2 ))
}

if [ $3 = '+' ] then add

到目前为止,我只是想从命令中得到2。/calc.sh 1 1+,但我在第20行不断得到意外的标记错误
语法错误,靠近意外的标记“elif”[$3='-']
然后减去在最后一行中,我们可以看到一些问题

if[$3='+']之后需要换行符或分号
虽然可能正是它选择停止粘贴的位置,但您的函数需要传递参数,因此“添加$1$2”与“添加”

这将满足您的需要:

#!/bin/bash

function add {
        echo $(( $1 + $2 ))
}

if [ $3 = '+' ]; then add $1 $2
fi

您没有包含错误引用的代码。您提到的语言不是“linux”,而是“bash”。请显示相关代码。请说明遇到错误的位置。另请参见和。另请参见,(U&L.SE),(SO),(AskU)等。您的错误消息会给出
elif
,但在您显示的代码中没有
elif
。@emma brain如果任何答案解决了您的问题,那么向上投票也是一个很好的做法。;-)