Chinaunix

标题: [求助]syntax error near unexpected token `;;' [打印本页]

作者: TokyoLinux    时间: 2014-02-03 14:24
标题: [求助]syntax error near unexpected token `;;'
本帖最后由 TokyoLinux 于 2014-02-03 15:12 编辑

新人一枚,请多多关照。
在做一个关于日志回转加备份的shell script.
执行脚本时候一直报错。
可也没发现错误,在网上搜索了很久也没找到解决反感。
错误如下:
/usr/local/sbin/log/PULG31.sh: line 518: syntax error near unexpected token `;;'
/usr/local/sbin/log/PULG31.sh: line 518: `;;'
到底是哪里出问题了呀。
我把相关行的代码贴出来,希望大侠指点迷津。
用Case编写的这一段。


        7)   
                #确认有无日志保存用目录。如无,生成一个。
                        if [ ! -d ${hulft_path}/etc/etc_${log_suffix} ];then

                                mkdir "${hulft_path}/etc/etc_${log_suffix}"

                                if [ $? != ${RC_OK} ];then
                                        echo "HULFT集配信ログ格納ディレクトリ作成エラー <etc_${log_suffix}>"
                                        return ${RC_ERR}
                                 fi
                                      fi
                #执行HULFT日志收集命令(RECIEVE)。 
                        ${hulft_path}/bin/utllist -r -from ${log_suffix} -to ${log_suffix}
                               
                                if [ $? != ${RC_OK} ];then
                                        echo "HULFTログローテーション該当データ無し <hulrcvlog.dat>"
                                        return ${RC_ERR}
                                fi
                         ##执行HULFT日志收集命令(SEND)。 
                        ${hulft_path}/bin/utllist -s -from ${log_suffix} -to ${log_suffix}
                               
                                if [ $? != ${RC_OK} ];then
                                        echo "HULFTログローテーション該当データ無し <hulsndlog.dat>"
                                        return ${RC_ERR}
                                fi
                                 
                       
                         #拷贝文件名为HulftRcv_YYYYMMDD的文件至保存用目录内。如错误,则输出错误信息。
                   cp -pf HulftRcv_${log_suffix} "${hulft_path}/etc/etc_${log_suffix}"
       
                                if [ $? != ${RC_OK} ];then
                                echo "ログファイルコピーエラー <etc_${log_suffix}>"
                                return ${RC_ERR}
                                fi

                        #拷贝文件名为HulftSnd_YYYYMMDD的文件至保存用目录内。如错误,则输出错误信息。
                   cp -pf HulftSnd_${log_suffix} "${hulft_path}/etc/etc_${log_suffix}"
       
                                if [ $? != ${RC_OK} ];then
                                echo "ログファイルコピーエラー <etc_${log_suffix}>"
                                return ${RC_ERR}
                                fi
                #删除HULFT中超过七天有效期的日志信息。       
                   ${hulft_path}/bin/utllog -a -day 7       
                       
                                if [ $? != ${RC_OK} ];then
                                        echo "HULFT集配信ログ削除エラー <hulrcvlog.datとhulsndlog.dat>"
                                        return ${RC_ERR}
                                fi
                                                         
                        ;;



其中,错误信息中的518行就是指的最后一行的双分号。
作者: Shell_HAT    时间: 2014-02-03 14:57
7个if
8个fi
作者: TokyoLinux    时间: 2014-02-03 15:12

回复 2# Shell_HAT


不好意思,是我刚才复制出现错误。
真正的脚本里面if和fi没有问题。



   
作者: Shell_HAT    时间: 2014-02-03 18:17
把完整代码贴出来看看
作者: bikkuri    时间: 2014-02-03 18:31
估计漏写了esac
作者: TokyoLinux    时间: 2014-02-05 10:46
回复 5# bikkuri

写了呀!


   
作者: jason680    时间: 2014-02-05 11:57
回复 6# TokyoLinux

search ;;  to find the issue


one case item only have one ";;"

7) ....
    echo 123 xyz ....;;
    ;;     <== get issue
   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2