如何在昨天和前天获得linux?

时间:2014-02-26 13:37:01

标签: linux shell unix

我想在变量中获取sysdate -1和sysdate -2并回显它。我正在使用下面的查询,它将今天的日期作为输出。

#! /bin/bash
tm=$(date +%Y%d%m)
echo $tm

如何获得昨天和前天的日期?

4 个答案:

答案 0 :(得分:25)

这是另一种方式,

昨天,

date -d '-1 day' '+%Y%d%m'

前天,

date -d '-2 day' '+%Y%d%m'

答案 1 :(得分:8)

  1. 昨天的日期

    YES_DAT=$(date --date=' 1 days ago' '+%Y%d%m')
    
  2. 前天的日期

    DAY_YES_DAT=$(date --date=' 2 days ago' '+%Y%d%m')
    
  3. 对于任何可以使用的日期,默认需要1天。如果它在前一天通过值

    ANY_YES_DAT=$(date --date=' $1 days ago' '+%Y%d%m')
    

答案 2 :(得分:2)

您可以通过以下方式获取昨天的日期:

date -d "yesterday 13:00 " '+%Y-%m-%d'

和前天这个: -

date -d "yesterday-1 13:00 " '+%Y-%m-%d'

答案 3 :(得分:1)

对于不提供-v选项的BSD日期的较早版本(例如,在macOS的旧版本上),您可以通过从当前时期减去86400秒(一天中的秒数)来获取昨天的日期

date -r $(( $(date '+%s') - 86400 ))

很明显,您可以为昨天等天减去2 * 86400。

编辑:添加对旧macOS版本的引用。