首页 > 学技术 > 技术网文 > Linux Shell > 正文

[精彩] 请教!有什么方法可以快速查出编写的SHELL到底错在哪?


来源 chinaunix.net 酷勤网整理

我学习编写了一个SHELL,在运行一部分后提示如下:
syntax error at line 255:'end of file' unexpected
我的SHELL只有254行,检查了很多遍循环和判断语句没有发现什么错错误
怎么办?有什么方法可以快速查出编写的SHELL到底错在哪吗?



 waker 回复于:2005-07-22 16:40:36

dos2unix 一下再试试


 zypra 回复于:2005-07-22 16:54:32

大哥:我这是SCO UNIX5.05运行dos2unix提示没有这个命令.


 waker 回复于:2005-07-22 16:57:50

cat -vET  file看看最后一行究竟是什么?


 honbj 回复于:2005-07-22 16:57:52

引用:原帖由 "zypra" 发表:
我学习编写了一个SHELL,在运行一部分后提示如下:
syntax error at line 255:'end of file' unexpected
我的SHELL只有254行,检查了很多遍循环和判断语句没有发现什么错错误
怎么办?有什么方法可以快速查出编写..........



sed -i 's/.$//' filename


这个试一下


 lych 回复于:2005-07-22 17:40:32

引用:原帖由 "zypra" 发表:
我学习编写了一个SHELL,在运行一部分后提示如下:
syntax error at line 255:'end of file' unexpected
我的SHELL只有254行,检查了很多遍循环和判断语句没有发现什么错错误
怎么办?有什么方法可以快速查出编写..........


这个错误,我以前遇到过
好像是很低级的错误,比如说丢了半个括号等等


 zypra 回复于:2005-07-22 17:43:08

还是不行,我真想哭了,。。。。。。。。。。。。


 zypra 回复于:2005-07-22 17:47:07

大哥,请帮我,一般什么原因会出现这类情况?我好逐项排查。


 lych 回复于:2005-07-22 17:49:57

不行,你就贴出来,大家帮你找!


 lych 回复于:2005-07-22 17:50:44

我上次好像是因为if循环少了一个fi


 chinesewyx 回复于:2005-07-22 21:21:23

超出最后一行的错误大多是差了个括号一类的错误


 zypra 回复于:2005-07-23 07:44:37

呵呵,说出来怕你们会笑掉牙,是因为在显示一条信息时少了一个”号。
我的第一个SHELL终于能正常运行了,我太高兴了。在此向waker、lych、honbg等网友表示深深的谢意,感谢你们耐心的帮助。


 guoyc1213 回复于:2005-07-23 20:23:09

if...then.... if  少一个fi
for do done 少do或done
case......esac 少esac等


 guoyc1213 回复于:2005-07-23 20:23:49

主要是有语名不完整或者是少关个括号或引号


 西门子 回复于:2005-07-24 18:15:10

试试! sh -x filename


 flw 回复于:2005-07-24 19:53:30

推荐楼主用 vim,这样会好一些。


 PKkingSon 回复于:2005-07-25 13:16:14

同意,用vim,打开语法加亮,很容易就能发现错误了。


 hhnxs 回复于:2005-07-25 17:44:10

试试sh -nvx filename


 netwalks 回复于:2005-07-26 10:52:20

引用:原帖由 "PKkingSon"]同意,用vim,打开语法加亮,很容易就能发现错误了。
 发表:


vim是什么啊?能否详细讲解一下。不好意思,刚刚开始学习用shell写脚本,还有很多基础的东西不太明白,请指教!谢谢拉


 bitbull 回复于:2005-07-26 22:01:08

第一个脚本就写了200多行?


 dzt_tomdu 回复于:2005-07-28 14:46:16

删除最后一行!




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=581822
转载请注明作者名及原文出处



收藏本页到: