syntax error near unexpected token ****
luyued 发布于 2011-04-17 15:13 浏览 N 次shell 脚本,在调试时,FOR循环那行代码,总是出现错误syntax error near unexpected token '$'\r''
悬赏分:30 | 解决时间:2011-2-18 16:55 | 提问者:Paladinling
代码是NUTCH 1.0的recrawl脚本已经指向bin/bash 附上出错的代码行for((i=0;i<$depth;i++))以及前后echo "----- Generate, Fetch, Parse, Update (Step 2 of $steps) -----"for((i=0;i<$depth;i++))do echo "--- Beginning crawl at depth `expr $i + 1` of $depth ---" $NUTCH_HOME/bin/nutch generate crawl/crawldb crawl/segments $topN \ -adddays $adddays if [ $? -ne 0 ] then echo "runbot: Stopping at depth $depth. No more URLs to fetch." break fi segment=`ls -d crawl/segments/* | tail -1`
问题补充:
不能解决,错误提示是bin/runbot:line 49:syntax error near unexpected token '$'\r'''in/runbot:line 49: 'for((i=0;i<$depth;i++))line 49代码就是for((i=0;i<$depth;i++))换号符错误,还是句式上有什么问题语法检查都试过 就是line 49这个错误 难道是我的cygwin跟WIN7 系统的问题
解决方法:
long long ago..... 老式的电传打字机使用两个字符来另起新行。一个字符把滑动架移回首位 (称为回车,
因为MS-DOS及Windows是回车+换行来表示换行,因此在Linux下用Vim查看在Windows下用VC写的代码,行尾后的“^M”符号,表示的是符。
这种情况发生的原因是因为你所处理的文件换行符是dos格式的"\r\n"可以使用cat -v 文件名 来查看换行符是否是,如果是上述的,则行结尾会是^m需要转换成linux/unix格式的"\n"具体转换办法就是转换换行符可以用sed命令处理一下文件,命令如下:sed 's/\r//' 原文件 >转换后文件
解决办法:
1)vi -b back.sh
2)%s/^M//g
///////注意:上述命令行中的“^M”符,不是“^”再加上“M”,而是由“Ctrl+v”、“Ctrl+M”
- 05-20· 证 据 目 录的格式
- 05-14· 发现一个BUG nForce2 的主板
- 05-14· NEC EXPRESSCLUSTER X3.0 FOR WIN
- 05-14· 最近有什么好听的歌呢?
- 05-13· 小园子的惊喜
- 05-13· 推荐的电脑配置
- 05-13· 飒飒秋风起,点点胭脂泪
- 05-13· 振作!!
- 05-11· 宏碁/精英有意并购浩鑫
- 05-11· [转]真实:17岁少年在校不
- 05-09· 3、21--3、25成长足迹公布
- 05-09· 和小伙伴闹矛盾(3月5日)
- 05-09· 浩鑫简约 X27D
- 05-09· 今天有点烦躁
- 05-09· 为什么富士康郭台铭最看
- 05-09· 南通热线信息超市_南通汽
- 05-09· [置顶]iPad2零组件供应商剖
- 05-09· 北京富士康科技有限公司
- 05-09· 富士康去年亏损2.18亿美元
- 05-09· 《富士康十二连跳在这以