在Bash中有没有更简单的计算昨天的方法?此代码(用于增量tar)
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。
发布于 2012-02-03 00:54:07
这可能会有帮助
date -d "yesterday" +%Y%m%d返回
20120202发布于 2012-02-03 00:53:51
也许我没有理解你的意思,但为什么不呢:
$ date -d yesterday
Wed Feb 1 11:53:12 EST 2012(可能是GNU扩展,所以不能保证你会拥有它)。如果你这样做,我会说它更容易:)。
发布于 2012-02-03 00:56:52
date -d yesterday
https://stackoverflow.com/questions/9116316
复制相似问题