Linux运行shell脚本出现“syntax error: unexpected end of file”

今天,为了方便在linux中快速启动和关闭程序,编写了一个shell脚本,但是在启动的时候,并不顺利,执行脚本,报了了以下异常错误信息:

[root@izwz94v2sdd3vagmtoxauvz ~]# sh stop.sh 
stop.sh: line 2: $'\r': command not found
stop.sh: line 11: syntax error: unexpected end of file

刚开始,我以为是我编写脚本的时候出现了语法错误,然后我去仔细检查了一下,发现并没有什么语法错误,以下是我编写的简单shell脚本,主要作用就是关闭一个java服务

#!/bin/bash
PID=$(ps -ef | grep tbhb-admin.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
    echo tbhb-admin.jar服务已关闭。
else
    echo 正在关闭tbhb-admin.jar服务:$PID
    kill $PID
fi

 经过多种途径,找到了以下解决方案:产生原因主要是windows中文件结束符和linux中的文件结束符不一致导致的。

使用vim命令进入编辑脚本文件界面,直接输入:set ff回车,即可看到当前脚本格式。如果看到:fileformat=dos

则需要把格式修改为unix,方法是直接输入:set ff=unix,输入完成后回车即可看到:fileformat=unix

 

你可能感兴趣的:(linux,异常,shell)