昨天在Bash中有更简单的方法吗?此代码(用于增量焦油)
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。
答案 0 :(得分:4)
也许我错过了你的观点,但为什么不呢:
$ date -d yesterday
Wed Feb 1 11:53:12 EST 2012
(可能是一个GNU扩展,所以没有承诺你会拥有它)。如果你这样做,我会说它更容易:)。
答案 1 :(得分:3)
这可能会有所帮助
date -d "yesterday" +%Y%m%d
返回
20120202
答案 2 :(得分:2)
date -d yesterday
答案 3 :(得分:2)
对我而言,这似乎有点短:
date --date "1 day ago"