Bash中意外令牌'elif'附近的语法错误

时间:2019-03-25 16:29:20

标签: linux bash

我正在使用一种新的语言,我认为它是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

到目前为止,我只是想得到它,所以我可以从命令./calc.sh 1 1 +中获得2,但是我在第20行syntax error near unexpected token 'elif' [ $3 = '-' ]上总是遇到意外的令牌错误,然后减去

2 个答案:

答案 0 :(得分:0)

在可见的最后一行中,有很多问题。

如果[[3 ='+'],则需要换行或半冒号 虽然可能只是选择停止粘贴,但您的函数需要传递参数,因此“ add $ 1 $ 2” vs“ add”

答案 1 :(得分:0)

这将满足您的要求:

#!/bin/bash

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

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