shell入门的拦路虎:syntax error: unexpected end of file

之所以称作拦路虎,是因为这个问题困扰了一天。

决定开始学习shell,在windows上用虚拟机装好redhat linux,完成网络配置,能与我的windows交互了。其它也不需要配。

开始学习bash,每次测试代码都在windows下写好,然后传到linux上执行。

在学习到if 等流程控制的语法的时候,我遇见了第一个难题写的 if 的测试总是不正确:“if.sh: line 11: syntax error: unexpected end of file ”。

—————————————————————————-

这个问题解决方案如下:学shell还是用vi或vim吧!

—————————————————————————-

syntax error: unexpected end of file问题的解决办法

dos文件转换成 unix 文件格式
dos 格式 文件 传输到 unix 系统时 , 会在每行的结尾多一个 ^M , 当然也有可能看不到 , 但是在 vi 的时候 , 会在下面显示此文件的格式 , 比如   ”dos.txt” [dos] 120L, 2532C 字样 , 表示是一个 [dos] 格式文件 , 如果是 MAC 系统的 , 会显示 [MAC] , 因为文件格式的原因有时会导致我们的 unix 程序 , 或者 shell 程序出现错误 , 那么需要把这些 dos 文件格式转换成 unix 格式 , 方法是
     vi   dos.txt          
     :set fileformat=unix 
     :w    

这样文件就转换成 unix 格式 文件了 ,一般在 windows 机器上编写好了文件传到 unix 下就可能会出现这样的情况 , 而一般我们使用ftp 命令, 常常会加上 bin 参数表示二进制传输, 可是试一下不加 bin 参数 , 可能传到 unix 下就是 unix 格式

    最后解决方法是用了UltraEdit软件,在文件菜单下有转换选择DOS转Unix,错误就解决了。

 利用UltraEdit语法着色来编辑shell脚本 

Ultraedit作为文本编辑器有许多其他编辑器所没有的功能,本文介绍一下如何利用UltraEdit 语法着色来优化shell脚本的编辑。

   默认地,在UltraEdit中,对shell脚本的语法着色是没有打开的,请按照下面的步骤进行设置来支持这一功能。

  1. 点击菜单"Advanced->Configuration...",弹出"UltraEdit Configuration"对话框。
  2. 选择Tab "Syntax Highlighting",找到编辑框"Full path name for wordlist",点击打开按钮。
  3. ue 官方网站下载 wordfile 扩展文件包:http://www.ultraedit.com/files/wf/wf.zip ,解压缩后打开文件'unixshell.uew',将其内容追加到步骤2中打开的文件中。
  4. 修改unixshell在步骤2中文件里的语言编号(/L#),假设原来最后一种语言编号为/L7,则需要将Unixshell编号设置为/L8。
  5. 重启UltraEdit,打开你的shell脚本,然后选择菜单: 'View->View as(Highlighting File Type)->Unix Shell Scripts'即可。

利用notepad++来编辑shell脚本时,在编辑菜单下的档案格式转换 转换成unix格式,可以解决出现“syntax error: unexpected end of file ”的错误

用editplus编写好看的shell脚本

下载bash.acp和bash.stx文件,这两个文件是分别实现语法高亮和语法自动完成用的。

http://pan.baidu.com/share/link?shareid=92073&uk=1729651712

保存至ediplus安装目录

 

在editplus配置里仿以下配置:

 



 

函数模板正则表达式: function[ \t]+[0-9a-zA-Z_]+[ \t]*\([ \t]*\)

配置完后确定保存.

 

脚本就可以有漂亮的语法着色,

按Ctrl + F11,就可以调出函数列表窗口,快速定位shell函数了



 

 

猜你喜欢

转载自liyn2008.iteye.com/blog/1832447
今日推荐