很长一段时间以来,我一直在努力解决这个小代码问题。
#!/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”中的点,但这似乎没有什么区别。 我试过删除每个空白字符和制表符。 我已经尝试评论行并执行脚本以试图找出问题,但无济于事。 我最终试图在这里找到错误!
如果你能帮助我......我将非常感激。
答案 0 :(得分:4)
你必须在一个区块中至少有一个命令;试试:
。
答案 1 :(得分:1)
为什么不:
#!/bin/bash
testFunction() {
if ! [ -d "/home/$USER/.skandPATH/" ] ; then
mkdir /home/$USER/.skandPATH/
addedPathDir=1
fi
}
testFunction