发布于 2014-12-22 16:42:44 | 3325 次阅读 | 评论: 1 | 来源: PHPERZ

这里有新鲜出炉的Linux常用命令,程序狗速度看过来!

Linux

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。


本文为大家讲解的是linux下执行SHELL脚本错误 syntax error:unexpected end of file 的解决方法,感兴趣的同学参考下。

错误描述

linux下执行sh test.sh提示syntax error:unexpected end of file

因为脚本是在windows下通过sublime编写的,然后upload到linux服务器。

解决思路

DOS下文件和Linux下文件格式差异问题导致的。

DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是0A。

在windows里,换行用的两个符号,回车\r,换行符号\n,在linux下只需一个符号\n就可以了。

DOS格式的文本文件在Linux下,用较低版本的vi打开时行尾会显示^M,当然也有可能看不到,但是在vi的时候,会在下面显示此文件的格式,"M.txt" [dos] 8L, 72C表示是一个dos文件格式。

解决方案

使用下面的命令将文件格式设置为unix格式即可解决上述错误。

vim test.sh
:set fileformat=unix
:wq

或着另存为文件保存为linux/unix格式的换行符即可。



相关阅读 :
linux下SHELL错误 syntax error:unexpected end of file 解决方法
windows下建立文件的换行符^M导致linux下的shell脚本运行错误的解决方案
linux下编译.sh文件报错 “[: XXXX: unexpected operator”解决方法
linux登录错误:-bash: ulimit: open files: cannot modify limit: Operation not permitted解决方法
linux下编译make文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 的解决方法
.sh文件执行错误:-bash: xxx: /bin/sh^M: bad interpreter: No such file or directory 解决方法
linux mount报错:you must specify the filesystem type的解决方法
Linux 出现telnet: 127.0.0.1: Connection refused错误解决办法
linux "command-not-found has crashed" 问题解决办法
linux 根目录爆满但du看目录总占用不多问题
error while loading shared libraries xx.so处理方法
关于安装linux redhat后无法使用yum命令安装gcc-c++问题的解决过程
最新网友评论  共有(1)条评论 发布评论 返回顶部
ufqwzbj 发布于2015-05-21 13:14:14
101个赞,感谢楼主~~~
支持(0)  反对(0)  回复

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务