语法错误:文件结束意外(期待“那么”)

我正在做一个Minecraft服务器插件更新的代码我是一个新的shell脚本,所以我不知道很多…
当我运行这个代码时,我得到一个错误:

#!/bin/sh export PATH=$PATH:. #Options PLUGINDOWNLOADLINK=http://api.bukget.org/3/plugins/bukkit/$PLUGINNAME/latest/download # Plugin folder if [ -f $PWD\plugins ]; then PLUG=$PWD\plugins else PLUG=$PWD\plug-ins fi cd $PLUG if [ ! -f .\update ]; then mkdir update echo Making Directory "update".. fi # Plugins Found for i in $( ls ); do PLUGINNAME=$i done cd .\update wget $PLUGINDOWNLOADLINK # No Plugins Found if [ ! -f $PLUG ]; then echo echo echo No plugin found. echo echo echo echo Plugins can be downloaded here: echo http://dev.bukkit.org/bukkit-plugins fi # stop sleep 3s exit 

我得到这个错误:

 Syntax error: end of file unexpected (expecting "then") 

所以我把“那么”放在了我想要的地方,然后再跑一遍:
它现在给了我这个错误:

 Syntax error: end of file unexpected 

我把它写在Windows 7的记事本++
我怎样才能解决这个问题?

Solutions Collecting From Web of "语法错误:文件结束意外(期待“那么”)"

我遇到了同样的问题。 而问题是这个文件的格式是“dos”,但是在linux下shell需要“unix”,所以我安装了“dos2unix”

 $ sudo apt-get install dos2unix 

或者如果你使用emacs,你可以这样做:

 Cx RET f unix 

祝你好运 :)

  1. Unix目录分隔符是正斜杠而不是反斜杠。
  2. Windows上的编辑器是否可以选择以“Unix”文件格式保存文件? shell在结尾处看到“ then^M ”字样的回车符。 如果你没有dos2unix然后尝试运行这个命令: sed -i 's/\r$//' filename