首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Bash中获得昨日

在Bash中获得昨日
EN

Stack Overflow用户
提问于 2012-02-03 00:49:11
回答 4查看 877关注 0票数 1

在Bash中有没有更简单的计算昨天的方法?此代码(用于增量tar)

代码语言:javascript
复制
mod_time=""

if [ ! -z ${1} ]; then
    if [ "${1}" = "i" ]; then

        this_month=`date +%m`

        this_year=`date +%y`

        last_day=`date +%d`

        # Subtract one from today's day, to get yesterday.

        if [ "${last_day:0:1}" = "0" ]; then
            if [ "${last_day:1:1}" > "1" ]; then
                last_day=$[$((${last_day:1:1})) - 1]
            fi
        else
            last_day=$[$(($last_day)) - 1]
        fi

        # zero pad if necessary

        if [ 10 -gt $last_day ]; then
            last_day="0$last_day"
        fi

        mod_time=" --newer-mtime $this_month/$last_day/$this_year "
    fi
fi

有几个问题,比如计算第0天,以及在月底没有做正确的事情。我不想构建闰年计算,我想知道在Bash中是否有一种简单的方法来实现这一点。如果没有,我将使用Clojure或Python。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-03 00:54:07

这可能会有帮助

代码语言:javascript
复制
 date -d "yesterday" +%Y%m%d

返回

代码语言:javascript
复制
 20120202
票数 3
EN

Stack Overflow用户

发布于 2012-02-03 00:53:51

也许我没有理解你的意思,但为什么不呢:

代码语言:javascript
复制
$ date -d yesterday
Wed Feb  1 11:53:12 EST 2012

(可能是GNU扩展,所以不能保证你会拥有它)。如果你这样做,我会说它更容易:)。

票数 4
EN

Stack Overflow用户

发布于 2012-02-03 00:56:52

代码语言:javascript
复制
date -d yesterday

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9116316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档