SHELL脚本“SYNTAX ERROR:UNEXPECTED END OF FILE”解决方案

今天,自己在写一个一键安装http服务的脚本时,使用if语句编写,用bash -x 命令你给调试,都报错“SYNTAX ERROR:UNEXPECTED END OF FILE”,怎么改动都会报错,通过google,发现自己的错误了。

1、在最初脚本中是在windows下,使用sublime编辑器写。
将shell脚本传至linux中:使用命令bash -x SCRIPT 检查语法总是出一个错误 syntax error:unexpected end of file。

原因如下:

dos文件传输到unix系统时,会在每行的结尾多一个^M,在vim的时候,当你用如下命令查看:cat -A SCRIPT
示例:
[root@localhost~]#cat -A installhttp.sh

#!/bin/bash^M$
#The script is autoinstallhttp.sh^M$
#Author Joah^M$
#Version 1.0.0^M$
version=`grep -o " [0-9]\>" /etc/centos-release`^M$
if [ $version -eq 7 ];do^M$
echo "We will install newversion.Please wait!"^M$

2、解决方法
使用命令dos2unix命令将SCRIPT脚本格式

[root@localhost~]#dos2unix installhttp.sh 
dos2unix: converting file installhttp.sh to UNIX format ...

或者:
[root@localhost/app]#vim installhttp.sh
:set fileformat=unix
:wq
[root@localhost/app]#cat -A installhttp.sh

$
$
#/bin/bash$
#$
#The script is autoinstallhttp.sh$
#Author Joah$
#Version 1.0.0$
version=`grep -o " [0-9]\>" /etc/centos-release$
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值