免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: zhkun

muzx:还是日期问题 [复制链接]

论坛徽章:
0
发表于 2003-05-22 17:22 |显示全部楼层

muzx:还是日期问题

哈哈!
我们还是不要灌水了!

论坛徽章:
0
发表于 2003-05-22 17:24 |显示全部楼层

muzx:还是日期问题

正在请教,怎么这么说,刚才说的一二三行还没有解释呢,
请......

论坛徽章:
0
发表于 2003-05-22 17:39 |显示全部楼层

muzx:还是日期问题

  1. #!/bin/ksh
  2. offset=`echo $TZ | tr -d '[A-Z+]'`
  3. new_offset=`expr $offset + 24 `
  4. TZ=`echo $TZ|sed 's:[A-Z]\{0,\}$::'`
  5. TZ=`echo $TZ | sed "s:[A-Z]\{0,\}$::;s:[+-]\{0,1\}[1-9][0-9]\{0,1\}:$new_offset:` date +%Y%m%d
复制代码

论坛徽章:
0
发表于 2003-05-23 09:00 |显示全部楼层

muzx:还是日期问题

muzx:我在TZ='EST5EDT'的计算机上运行您的脚本,提示是今天的时间和日期。为何?

论坛徽章:
0
发表于 2003-05-23 09:08 |显示全部楼层

muzx:还是日期问题

下面是我的机器上现在试验的结果:
  1. B01 / # cat aaaa
  2. #!/bin/ksh
  3. TZ=EST5EDT
  4. offset=`echo $TZ | tr -d '[A-Z+]'`
  5. new_offset=`expr $offset + 24 `
  6. TZ=`echo $TZ|sed 's:[A-Z]\{0,\}$::'`
  7. TZ=`echo $TZ | sed "s:[A-Z]\{0,\}$::;s:[+-]\{0,1\}[1-9][0-9]\{0,1\}:$new_offset:` date +%Y%m%d
  8. B01 / # date
  9. Fri May 23 09:03:51 CST 2003
  10. B01 / # sh aaaa
  11. 20030522
  12. B01 / #
复制代码

你的情况我不能理解!

论坛徽章:
0
发表于 2003-05-23 09:22 |显示全部楼层

muzx:还是日期问题

muzx:
    这样的,在TZ='CST-8'或者在其它如TZ=`XXX+或- 某个数字`的情况下可以,只要在/etc/TIMEZONE内容是TZ=`EST5EDT`;export  TZ,情况下就不行。您只要将某台sco505下的/etc/TIMEZONE内容改成TZ=`EST5EDT`;export  TZ,后重新启动,再运行脚本,您看是不是。
等着......

论坛徽章:
0
发表于 2003-05-23 11:45 |显示全部楼层

muzx:还是日期问题

为了给你作试验,我把业务停了10分钟
请看:
  1. cat  /etc/TIMEZONE
  2. #ident  "@(#)adm:TIMEZONE       1.2"
  3. #       Set timezone environment to default for this machine
  4. TZ='EST5EDT'
  5. export TZ
  6. B01 /tmp # date
  7. Fri May 23 11:42:32 EDT 2003
  8. B01 /tmp # sh dd
  9. 20030522
  10. B01 /tmp # cat dd
  11. offset=`echo $TZ | tr -d '[A-Z+]'`
  12. new_offset=`expr $offset + 24 `
  13. TZ=`echo $TZ|sed 's:[A-Z]\{0,\}$::'`
  14. TZ=`echo $TZ | sed "s:[A-Z]\{0,\}$::;s:[+-]\{0,1\}[1-9][0-9]\{0,1\}:$new_offset:` date +%Y%m%d
  15. B01 /tmp #
复制代码

论坛徽章:
0
发表于 2003-05-23 14:33 |显示全部楼层

muzx:还是日期问题

muzx:
您的dd内容是:
offset=`echo $TZ | tr -d '[A-Z+]'`
new_offset=`expr $offset + 24 `
TZ=`echo $TZ|sed 's:[A-Z]\{0,\}$::'`
TZ=`echo $TZ | sed "s:[A-Z]\{0,\}$::;s:[+-]\{0,1\}[1-9][0-9]\{0,1\}new_offset:` date +%Y%m%d
在这一行的最后加入:%T;并加入date
TZ=`echo $TZ | sed "s:[A-Z]\{0,\}$::;s:[+-]\{0,1\}[1-9][0-9]\{0,1\}new_offset:` date +%Y%m%d %T
date

运行dd后,键入date命令,看看时间对否.

论坛徽章:
0
发表于 2003-05-23 15:01 |显示全部楼层

muzx:还是日期问题

这是我现在按你的要求所作。我认为没有什么不对呀?
  1. B01 /tmp # cat /etc/TIMEZONE
  2. #ident  "@(#)adm:TIMEZONE       1.2"
  3. #       Set timezone environment to default for this machine
  4. #TZ='CST-8'
  5. TZ='EST5EDT'
  6. export TZ
  7. B01 /tmp # cat dd
  8. offset=`echo $TZ | tr -d '[A-Z+]'`
  9. new_offset=`expr $offset + 24 `
  10. TZ=`echo $TZ|sed 's:[A-Z]\{0,\}$::'`
  11. TZ=`echo $TZ | sed "s:[A-Z]\{0,\}$::;s:[+-]\{0,1\}[1-9][0-9]\{0,1\}:$new_offset:` date +%Y%m%d
  12. TZ=`echo $TZ | sed "s:[A-Z]\{0,\}$::;s:[+-]\{0,1\}[1-9][0-9]\{0,1\}:$new_offset:` date
  13. B01 /tmp # sh dd
  14. 20030522
  15. Thu May 22 13:58:19 EST 2003
  16. B01 /tmp # date
  17. Fri May 23 14:58:23 EDT 2003
  18. B01 /tmp #
复制代码

论坛徽章:
0
发表于 2003-05-23 15:10 |显示全部楼层

muzx:还是日期问题

muzx:您看
20030522
Thu May 22 13:58:19 EST 2003
B01 /tmp # date
Fri May 23 14:58:23 EDT 2003
第一,时间:13:58:19 与14:58:19 (比如运行dd后快速date)
第二,时区:EST与EDT
第三,时间差一个小时的话,就有可能,日期转变不过来.即可能出现日期相等的情况.
您说呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP