免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: 懒的不行了
打印 上一主题 下一主题

不好意思,又来麻烦各位大侠,请一定帮帮我 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2003-03-14 11:50 |只看该作者

不好意思,又来麻烦各位大侠,请一定帮帮我

taige大侠,我这边有两台机器,出了问题后,我就是的跟你的一样的程序分别在两台机器上测试,一台正常,一台不正常。按常例来讲是机器问题不是我的问题,可是客户那边的机器也出了这样的问题,所以在验收测试时开了我的bug票,还不依不饶的非要我解决问题。我急的头发都掉光了。部分相关程序如下:
while getopts :A:E:h KEY $*
do
   case $KEY in
   A)starttime=$OPTARG;;
   E)endtime=$OPTARG;;
   h)help=yes;;
   *)wrong=$OPTARG;;
   esac
if [ $starttime -gt $endtime ]; then
   echo 开始时间不得大于结束时间!
   exit
fi

论坛徽章:
0
12 [报告]
发表于 2003-03-14 12:01 |只看该作者

不好意思,又来麻烦各位大侠,请一定帮帮我

奇怪了
我把你的程序放到我的机器上
t.sh -A 20010101010101 -E 20010101010101
结果正常啊!

对了,你少写了一个done,在esac后面

建议在脚本开头加上
#!/usr/bin/ksh -x
可以看到中间计算结果
就能找到你的问题了

论坛徽章:
0
13 [报告]
发表于 2003-03-14 12:31 |只看该作者

不好意思,又来麻烦各位大侠,请一定帮帮我

done不少,在后头

在if前可以加两个echo看看$starttime and $endtime是什么?

论坛徽章:
0
14 [报告]
发表于 2003-03-14 12:49 |只看该作者

不好意思,又来麻烦各位大侠,请一定帮帮我

原帖由 "nkliyong" 发表:
done不少,在后头

在if前可以加两个echo看看$starttime and $endtime是什么?



done在后头?
哪儿?
应该在esac后面
要是在最后
程序就不对了

论坛徽章:
0
15 [报告]
发表于 2003-03-14 13:03 |只看该作者

不好意思,又来麻烦各位大侠,请一定帮帮我

done没少,是我copy漏了,取出来的值全部echo过了,都是对的。程序所有逻辑没问题,就只有比较的时候出问题,所以我想可能是机器问题。可是不管怎么样还是要解决。希望有人能告诉我有没有别的方法,这个方法是没用的

论坛徽章:
0
16 [报告]
发表于 2003-03-14 13:13 |只看该作者

不好意思,又来麻烦各位大侠,请一定帮帮我

原帖由 "taige" 发表:



done在后头?
哪儿?
应该在esac后面
要是在最后
程序就不对了



是俺想当然啦.
用>试试

论坛徽章:
0
17 [报告]
发表于 2003-03-14 13:34 |只看该作者

不好意思,又来麻烦各位大侠,请一定帮帮我

[quote]原帖由 "懒的不行了"]done没少,是我copy漏了,取出来的值全部echo过了,都是对的。程序所有逻辑没问题,就只有比较的时候出问题,所以我想可能是机器问题。可是不管怎么样还是要解决。希望有人能告诉我有没有别的方法,这个方法是没用的[/quote 发表:


在脚本开头加上
#!/usr/bin/ksh -x
可以看到中间计算结果
就能找到你的问题了

  1. vs-wuhq:2:/export/home/wuhq>t.sh -A 20010101010101 -E 20010101010101
  2. + t.sh -A 20010101010101 -E 20010101010101
  3. + getopts :A:E:h KEY -A 20010101010101 -E 20010101010101
  4. + starttime=20010101010101
  5. + getopts :A:E:h KEY -A 20010101010101 -E 20010101010101
  6. + endtime=20010101010101
  7. + getopts :A:E:h KEY -A 20010101010101 -E 20010101010101
  8. + echo [20010101010101][20010101010101]
  9. [20010101010101][20010101010101]
  10. + [ 20010101010101 -gt 20010101010101 ]
复制代码

论坛徽章:
0
18 [报告]
发表于 2003-03-14 13:48 |只看该作者

不好意思,又来麻烦各位大侠,请一定帮帮我

唉,要真能这样就好了,我按照你的方法加了+x,没有发现什么地方出错,没有找到任何问题。我想放弃了,大不了不干了
+[ 20010101010101 !=  ]
+ [ 20040101010101 !=  ]
+ [ 20010101010101 -gt 20040101010101 ]
+ echo start time can not be later than end time!
start time can not be later than end time!

论坛徽章:
0
19 [报告]
发表于 2003-03-14 14:15 |只看该作者

不好意思,又来麻烦各位大侠,请一定帮帮我

那你做一个试验:($为命令行提示符)
$ [ 20010101010100 -gt 20040101010101 ]
$ echo $?
...
$ [ 20010101010101 -gt 20040101010101 ]
$ echo $?
...
$ [ 20010101010102 -gt 20040101010101 ]
$ echo $?
...

$ if 1; then
> echo "1 is ok"
> else
> echo "0 is ok"
> fi
......

懂我的意思吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP