Bash 附近的语法错误

Bash 附近的语法错误,bash,function,if-statement,token,Bash,Function,If Statement,Token,很长一段时间以来,我一直在努力处理这个小代码段 #!/bin/bash testFunction() { if [ -d "/home/$USER/.skandPATH/" ] ; then #Exists. Do nothing. else mkdir /home/$USER/.skandPATH/ #Does not exist. Creates directory

很长一段时间以来,我一直在努力处理这个小代码段

#!/bin/bash

testFunction() { 

        if [ -d "/home/$USER/.skandPATH/" ] ; then 
                #Exists. Do nothing. 
        else 
                mkdir /home/$USER/.skandPATH/   #Does not exist. Creates directory 
                addedPathDir=1 
        fi
} 

testFunction 
每次运行时,我都会收到以下消息:

./functionInScript.sh: line 7: syntax error near unexpected token `else'
./functionInScript.sh: line 7: `else '
我已经搜索了几十条“意外令牌bash附近的语法错误”,并尝试了几十条建议

我已经在该文件上运行了dos2unix(尽管我使用的是Mint)。 我避开了“.skandPATH”中的点,但这似乎没有什么区别。 我已尝试删除每个空白字符和制表符。 我试着注释行并执行脚本,以试图找出问题所在,但没有效果。 我想找出这里出了什么问题,真是束手无策


如果你能帮我。。。非常感谢。

您必须在一个块中至少有一个命令;试试。

为什么不:

#!/bin/bash

testFunction() { 
    if ! [ -d "/home/$USER/.skandPATH/" ] ; then 
            mkdir /home/$USER/.skandPATH/
            addedPathDir=1
    fi
} 

testFunction 

@伊格纳西奥·巴斯克斯·艾布拉姆斯成功了。我不知道在一个块中必须至少有一个命令。我非常感激。非常感谢。在将来,您可能会发现找出这种奇怪的bash错误很有帮助。在这种情况下,它会说“不能有空then子句(使用'true'作为no op)。”@thatotherguy感谢您的参考。“看起来真的很有帮助。”另一个人谢谢你。我从来没有想到会有这样一个网站存在。@thattotherguy哇!我从来没有想到这是真的。非常感谢。