免费注册 查看新帖 |

Chinaunix

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

问一个ksh数组问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-29 19:55 |只看该作者 |倒序浏览
各位大哥帮忙看看是哪里出了问题了

#!/usr/bin/ksh
curday=`date +%Y%m%d`
DIRNAME=/sybase5/workdir/$1
LOG=/sybase5/workdir/$1/back.log
checkday=`date +"%y-%m-%d %H:%M:%S"`
DBSN=$1
DBP=$2
MAXFILECOUNT=4
MAXLOGCOUNT=4
cd $DIRNAME


set -A DBNAME master master master master master master
set -A TABLENAME syslogins sysusages sysroles sysdatabases sysusers sysloginroles

tablecount=${#TABLENNAME
  • }
    typeset -i curcou
    curcou=0

    while [ $cucou -lt $tablecount ]
        do
            bcp ${DBANME[$cucou]}..${TABLENAME[$cucou]} out $DIRNAME/${TABLENAME[$cucou]}_$curday.bcp -Usa -P$DBP -S$DBSN -c
         curcou=$curcou + 1
        done



    报错:
    sybase5@linux:~/workdir/chengqian> ./test.sh linux cocoelva
    6 is DB
    0 is table
    ./test.sh[34]: [: 0: unexpected operator/operand




    sybase5@linux:~/workdir/chengqian> sh -x test.sh linux cocoelva
    ++ date +%Y%m%d
    + curday=20090402
    + DIRNAME=/sybase5/workdir/linux
    + LOG=/sybase5/workdir/linux/back.log
    ++ date '+%y-%m-%d %H:%M:%S'
    + checkday=09-04-02 04:45:34
    + DBSN=linux
    + DBP=cocoelva
    + MAXFILECOUNT=4
    + MAXLOGCOUNT=4
    + cd /sybase5/workdir/linux
    + set -A DBNAME master master master master master master
    test.sh: line 14: set: -A: invalid option
    set: usage: set [--abefhkmnptuvxBCHP] [-o option] [arg ...]




    查了资料,set -A argname a b c  定义数值没错呀。实在是找不到了,还请那位大哥给看看,我是那出了问题。
    谢谢了。

    [ 本帖最后由 coco_andy 于 2009-3-29 20:25 编辑 ]
  • 论坛徽章:
    0
    2 [报告]
    发表于 2009-03-29 20:07 |只看该作者

    回复 #1 coco_andy 的帖子

    try:
    ksh -x test.sh linux cocoelva

    论坛徽章:
    0
    3 [报告]
    发表于 2009-03-29 20:08 |只看该作者
    ksh里的set 有A选项?
    bash好像没什么印象有这个哦 小a就有

    论坛徽章:
    0
    4 [报告]
    发表于 2009-03-29 20:11 |只看该作者
    出错的问题从while里面找
    while [ $cucou -lt $tablecount ]
        do
            bcp ${DBANME[$cucou]}..${TABLENAME[$cucou]} out $DIRNAME/${TABLENAME[$cucou]}_$curday.bcp -Usa -P${DBA[$cucou]} -S$DBSN -c
         curcou=$curcou + 1
        done

    我不知道这个bcp是干什么用的,可能就是这个错了吧,我猜

    论坛徽章:
    0
    5 [报告]
    发表于 2009-03-29 20:13 |只看该作者
    sybase5@linux:~/workdir/chengqian> ksh -x test.sh linux cocoelva
    + date +%Y%m%d
    + curday=20090402
    + DIRNAME=/sybase5/workdir/linux
    + LOG=/sybase5/workdir/linux/back.log
    + date +%y-%m-%d %H:%M:%S
    + checkday=09-04-02 05:04:59
    + DBSN=linux
    + DBP=cocoelva
    + MAXFILECOUNT=4
    + MAXLOGCOUNT=4
    + cd /sybase5/workdir/linux
    + set -A DBNAME master master master master master master
    + set -A TABLENAME syslogins sysusages sysroles sysdatabases sysusers sysloginroles
    + DB=6
    + echo 6 is DB
    6 is DB
    + tablecount=0
    + echo 0 is table
    0 is table
    + typeset -i curcou
    + curcou=0
    + [ -lt 0 ]
    test.sh[34]: [: 0: unexpected operator/operand




    谢谢了 要用 ksh -x test.sh linux cocoelva

    论坛徽章:
    0
    6 [报告]
    发表于 2009-03-29 20:13 |只看该作者

    回复 #4 我是DBA 的帖子


    还没到那儿吧?晕了?

    论坛徽章:
    0
    7 [报告]
    发表于 2009-03-29 20:22 |只看该作者
    恩,应该没到,可能是 while 出了问题

    论坛徽章:
    0
    8 [报告]
    发表于 2009-03-29 20:36 |只看该作者
    sybase5@linux:~/workdir/chengqian> ksh -x test.sh linux cocoelva
    + date +%Y%m%d
    + curday=20090402
    + DIRNAME=/sybase5/workdir/linux
    + LOG=/sybase5/workdir/linux/back.log
    + date +%y-%m-%d %H:%M:%S
    + checkday=09-04-02 05:29:22
    + DBSN=linux
    + DBP=cocoelva
    + MAXFILECOUNT=4
    + MAXLOGCOUNT=4
    + cd /sybase5/workdir/linux
    + set -A DBNAME master master master master master master
    + set -A TABLENAME syslogins sysusages sysroles sysdatabases sysusers sysloginroles
    + tablecount=0
    + curcou=0
    + [ -le 0 ]




    晕了,curcou已经取到 0 了,为什么在条件里面会没有!!!

    [ 本帖最后由 coco_andy 于 2009-3-29 20:42 编辑 ]

    论坛徽章:
    0
    9 [报告]
    发表于 2009-03-29 20:40 |只看该作者
    $cucou 少了r

    论坛徽章:
    0
    10 [报告]
    发表于 2009-03-29 20:45 |只看该作者
    晕呀。哎,这都没发现,鄙视自己了。谢谢楼上了。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

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

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP