unix shell脚本中的前一天日期

时间:2013-12-02 16:52:38

标签: shell date unix

我想声明一个名为val1的变量,以yyyymmdd格式保存前一天的日期

任何帮助都会很棒

3 个答案:

答案 0 :(得分:7)

val1=$(date +%Y%m%d --date="yesterday")

应该这样做。

答案 1 :(得分:1)

您可以使用GNU date命令,如下所示

  

过去获得日期

     

要获得昨天和过去的早些时候使用字符串前一天:

日期 - 日期='昨天'

date --date ='1天前'

date --date = '10 day ago'

date --date = '10 week ago'

date --date = '10 month ago'

日期 - 日期='10年前'

  

在未来获得日期

     

明天和明天(明天+ N)明天使用日期字来获取日期如下:

日期 - 日期='明天'

日期 - 日期='1天'

日期 - 日期= '10天'

日期 - 日期= '10周'

日期 - 日期= '10个月'

date --date = '10 year'

在这种情况下应该是

VAL1 = date +%Y%m%d --date="yesterday"

答案 2 :(得分:0)

如果您的date实施在@ user2042297的答案上窒息,则此可能有效:

awk 'BEGIN {
    split(strftime("%Y %m %d", systime()), now)
    yesterday = mktime(sprintf("%d %d %d 0 0 0", now[1], now[2], now[3]-1))
    print strftime("%Y%m%d", yesterday)
}'

这可能需要GNU awk,所以你可能不会处于更好的位置。