-1

很长一段时间以来,我一直在为这个小代码段而苦苦挣扎。

#!/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”中的点,但这似乎没有什么区别。我尝试删除每个空格字符和制表符。我尝试注释掉行并执行脚本以尝试查明问题,但无济于事。我在我的智慧尽头试图找出这里有什么问题!

如果你能帮助我...我将不胜感激。

4

2 回答 2

4

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

于 2013-06-26T00:46:59.277 回答
1

为什么不:

#!/bin/bash

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

testFunction 
于 2013-06-26T02:56:51.123 回答