繁体   English   中英

语法错误:文件意外结束。 重击

[英]Syntax error: unexpected end of file. Bash

我想建立一个teampeak机器人,并且我有这个脚本来启动它。

    #!/bin/bash
    if [ $1 = 'stop' ] 
      then 
        echo stop >> /root/ts3bot/tmp/log.txt
      date >>/root/ts3bot/tmp/log.txt
        echo ======================
        screen -S bot -X quit
      fi

    if [ $1 = 'start' ] 
      then 
      echo start >> /root/ts3bot/tmp/log.txt
      date >> /root/ts3bot/tmp/log.txt
      echo ======================
        screen -dmS bot php core.php
        ps ax | grep -v grep | grep -v -i SCREEN | grep links >> /root/ts3bot/tmp/log.txt
    fi
     <here is an extra blank line>

但是当我输入bash bot.sh它说syntax error: unexpected end of file我不知道我做错了什么:/ chmod设置在755

谢谢!

我怀疑您可能已将此外壳程序脚本从Microsoft Windows盒复制到Linux或Unix服务器。 如果是这样,则问题可能出在您的DOS / Windows行尾,这可能导致脚本中出现无法预测的结果。

要在Linux或Unix服务器上检查脚本中行尾的错误,可以在shell提示符下键入以下命令来转储文件(类似于十六进制转储):

$ od -c bot.sh | less

并寻找\\n\\r\\r\\n 如果行的末尾似乎有\\r ,则说明您已发现问题。

要解决此行尾问题,可以使用dos2unix之类的工具(如果已将其安装在系统上)。 如果您没有dos2unix但是您使用的是Linux服务器,则可以执行以下操作:

$ sed -i 's/\r//' bot.sh

转换文件。

最后...看到脚本的第一行, #!/bin/bash 因此,您不需要使用bash bot.sh来运行它,只需使用./bot.sh直接执行它即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM