Date tcsh:在shell中打印2周前的日期
在OpenBSD上的tcsh中,我需要打印两周前的日期Date tcsh:在shell中打印2周前的日期,date,tcsh,Date,Tcsh,在OpenBSD上的tcsh中,我需要打印两周前的日期 例如,如果今天是2013-03-02,我需要打印出2013-02-16。似乎tcsh不允许执行嵌套命令,因此,看起来必须使用ksh date +%Y-%m-%d ; \ sh -c 'date -r $(expr $(date +%s) - $(expr 60 \* 60 \* 24 \* 14)) +%Y-%m-%d' 2013-03-02 2013-02-16 我们以UTC为单位,以自历元起的秒数获取日期,并使用expr以秒为单位计算
例如,如果今天是
2013-03-02
,我需要打印出2013-02-16
。似乎tcsh
不允许执行嵌套命令,因此,看起来必须使用ksh
date +%Y-%m-%d ; \
sh -c 'date -r $(expr $(date +%s) - $(expr 60 \* 60 \* 24 \* 14)) +%Y-%m-%d'
2013-03-02
2013-02-16
我们以UTC为单位,以自历元起的秒数获取日期,并使用expr
以秒为单位计算两周,减去这些秒数,然后使用-r
参数将这些秒数传递回日期
不确定是否有比使用1209600
代替$(expr 60\*60\*24\*14)更短的解决方案
:
这应该行得通(它在GNU日期起作用。我对OpenBSD不是很熟悉。所以不确定它是否适合您)
不,它显然不起作用。但对于GNU/Linux用户来说,这是一个有趣的选择!我花了10多分钟来理解为什么它不能在我的shell中提供输出。。然后我看到你的评论…:(
sh -c 'date -r $(expr $(date +%s) - 1209600) +%Y-%m-%d'
date -d "now - 14 days" +%Y-%m-%d