免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 35914 | 回复: 5

shell脚本排错 syntax error: unexpected end of file [复制链接]

论坛徽章:
0
发表于 2008-04-17 10:36 |显示全部楼层
#!/bin/sh
cnc=`ping -c3 -t 1 x.x.x.x | grep received | cut -d ' ' -f 4`
net=`ping -c3 -t 1 y.y.y.y | grep received | cut -d ' ' -f 4`
if [ "$cnc" != "0" ] && [ "$net" != "0" ]; then
      echo 0 > /etc//xian.conf
else
   if [ "$cnc" != "0" ]; then
           echo 1 > /etc/xian.conf
   else
        if [ "$net" != "0" ]; then
                echo 2 > /etc/xian.conf
        else
                echo `date "+DATE: %Y-%m-%d-%H:%M:%S"`------ xian down! >> $log
        fi
   fi
fi



脚本执行之后提示错误
line 17: syntax error: unexpected end of file

我在网上搜到这种错误都是没有结束标记造得的
如if之后没有fi
for 循环 do之后没有done
while 循环 do这后没有done
可是这段脚本少了什么啊

另外这段脚本将else if  ... then ...fi 改成elif ... then为什么不行啊

#!/bin/sh
cnc=`ping -c3 -t 1 x.x.x.x | grep received | cut -d ' ' -f 4`
net=`ping -c3 -t 1 y.y.y.y | grep received | cut -d ' ' -f 4`
if [ "$cnc" != "0" ] && [ "$net" != "0" ]; then
      echo 0 > /etc//xian.conf
elif [ "$cnc" != "0" ]; then
           echo 1 > /etc/xian.conf
elif [ "$net" != "0" ]; then
           echo 2 > /etc/xian.conf
else
           echo `date "+DATE: %Y-%m-%d-%H:%M:%S"`------ xian down! >> $log
fi


执行之后提示错误
line 6: syntax error near unexpected token `elif'
line 6: `elif [ "$cnc" != "0" ]; then

请问什么原因,谢谢了

论坛徽章:
0
发表于 2008-04-17 11:19 |显示全部楼层

  1. try change
  2. if [ "$cnc" != "0" ] && [ "$net" != "0" ]; then
  3. to
  4. if [ "$cnc" != "0" -a "$net" != "0" ]; then
复制代码

论坛徽章:
0
发表于 2008-04-17 11:31 |显示全部楼层
刚试了,不行啊,错误提示还是一样
还是谢谢你

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
发表于 2008-04-17 12:37 |显示全部楼层
log是父进程继承来的变量?如果不是重定向到哪?

论坛徽章:
0
发表于 2008-04-17 12:44 |显示全部楼层
你的这二个脚本我有复制贴上,改本 x.x.x.x y.y.y.y 后执行都是正常的.

除了第5行的导向目标多了个 '/'  以及第 11行 $log 貌似没有宣告是空值外....

所以你可能要检查一你的档案是不是存在有其它的控制码而你没发现

或是另外开档重写一次看看.

论坛徽章:
0
发表于 2008-04-17 13:57 |显示全部楼层
谢谢版主和楼上大哥的回复

脚本重写一遍就好了,真是晕倒

log=/var/log/head.log
我忘复制了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

PostgreSQL中国大会,早鸟票抢购!

PostgreSQL中国大会,早鸟票抢购!
2019年11月29~11月30日,由 PostgreSQL中文社区与ITPUB联合主办的第九届《PostgreSQL 中国技术大会》将在北京隆重召开。PostgreSQL 作为功能最强的的开源关系型数据库之一,得到了越来越多企业的推广和运用,也越来越受到广大技术爱好者的欢迎和重视。这将是 PostgreSQL 的又一次交流盛会。




----------------------------------------

点击报名>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP