免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1575 | 回复: 9
打印 上一主题 下一主题

出现“}”语法错误提示,是怎么回事?请各位师兄指点并优化它。急用。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-26 10:44 |只看该作者 |倒序浏览
printt() {
    cd /u/chuxu/dfk/dfk/txt/
    rm *
    echo "请插入社保局代发养老金的数据盘,按回车键继续.\c"
    read any
    doscp a:*.txt .
    pwd
    ls *.txt
    sleep 3
    cp *.txt ../
    cd ../
    if [ "$opt" = 1 ] then f_mv xys.txt
    if [ "$opt" = 2 ] then f_mv bf.txt
    echo "\n\n如果没有显示错误信息,表明数据拷贝成功.
         \n请进入储蓄总菜单的社保代发,读入数据......"
    sleep 3
    opt=0
}

while true do
clear
echo "\n\n\n\n         社保局数据拷入程序"
echo "\n\n     1━━━━━━ 养老金"
echo "     2━━━━━━ 补发"
#echo "     j ------------ 数据有误时执行!"
echo "     0 ------ 退出\n"
echo "          请选择:\c"
read opt
case $opt in
1|2)
       printt
       ;;
jymm.out)  
     cd /u/chuxu/
#    jymm.out
     echo " \n\n------数据校验完毕,按任意键返回.\c "
     read any;;
0)
     break

esac
done
clear
echo "\n\n----再见!"
cd
exit



这是一个片断,运行程序时,出现语法错误,指示为“}”unexpected.
这是什么语法错误?请各位师兄指点一下。

[ 本帖最后由 sjzygh 于 2006-4-26 10:52 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-04-26 11:03 |只看该作者
将其中容易出问题的地方注释掉试试,

反复调试,就找到错误了.

其实,你的if语句应该是错误的.

论坛徽章:
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
3 [报告]
发表于 2006-04-26 11:05 |只看该作者
原帖由 bluesgone 于 2006-4-26 11:03 发表
将其中容易出问题的地方注释掉试试,

反复调试,就找到错误了.

其实,你的if语句应该是错误的.

并且then前面没;号

[ 本帖最后由 waker 于 2006-4-26 11:06 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2006-04-26 11:13 |只看该作者
原帖由 waker 于 2006-4-26 11:05 发表

并且then前面没;号




结束没fi....

呵呵,大家贴问题,都把自己干什么都贴出来了,
没有保密啊,hoho.

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
5 [报告]
发表于 2006-04-26 11:21 |只看该作者
还有,break后要双分号的吧?

论坛徽章:
0
6 [报告]
发表于 2006-04-26 11:40 |只看该作者
if then else fi   在这里怎么用?请大家详细些指点一下。
谢谢!!

论坛徽章:
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
7 [报告]
发表于 2006-04-26 12:09 |只看该作者
原帖由 woodie 于 2006-4-26 11:21 发表
还有,break后要双分号的吧?

如果是最后一个case block,加上更正规一点儿,不加也不会死

论坛徽章:
0
8 [报告]
发表于 2006-04-26 16:45 |只看该作者
原帖由 sjzygh 于 2006-4-26 11:40 发表
if then else fi   在这里怎么用?请大家详细些指点一下。
谢谢!!



请师兄指点一下,我就不去查了。多谢!!

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
9 [报告]
发表于 2006-04-26 17:13 |只看该作者
>请师兄指点一下,我就不去查了。多谢!!
说得好轻巧!看在嘴甜的份上,指点你一下:
if必须和fi匹配;命令不在行尾后面要加分号,换句话说一般要用";"或"换行"终结一条命令。
答案得来轻松,不一定是好事!^_^

论坛徽章:
0
10 [报告]
发表于 2006-04-30 06:51 |只看该作者

回复 9楼 woodie 的帖子

谢谢这位师兄了,我记住了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP