如何在Bash中打印当前时间前一天的日期?
当前回答
yesterday=`date -d "-1 day" %F`
将昨天的日期(YYYY-MM-DD格式)放入变量$yesterday。
其他回答
date -d "yesterday" '+%Y-%m-%d'
or
date=$(date -d "yesterday" '+%Y-%m-%d')
echo $date
date +%Y:%m:%d|awk -vFS=":" -vOFS=":" '{$3=$3-1;print}'
2009:11:9
高级bash脚本编写指南
date +%Y:%m:%d -d "yesterday"
有关日期格式的详细信息,请参阅日期手册页
date --date='-1 day'
MAC OSX
昨天的日期:
date -v-1d +%F
其中1d定义今天减去1天。同样的,
date -v-1w +%F -表示前一周的日期
date -v-1m +%F -表示上个月的日期
如果你有gnu日期,
date --date="1 day ago"
更多信息:https://www.cyberciti.biz/tips/linux-unix-get-yesterdays-tomorrows-date.html
#!/bin/bash
OFFSET=1;
eval `date "+day=%d; month=%m; year=%Y"`
# Subtract offset from day, if it goes below one use 'cal'
# to determine the number of days in the previous month.
day=`expr $day - $OFFSET`
if [ $day -le 0 ] ;then
month=`expr $month - 1`
if [ $month -eq 0 ] ;then
year=`expr $year - 1`
month=12
fi
set `cal $month $year`
xday=${$#}
day=`expr $xday + $day`
fi
echo $year-$month-$day
推荐文章
- 安装tzdata非交互式
- 在Bash中检查变量是否存在于列表中
- 解析日期字符串并更改格式
- 查看PS命令的全部输出
- 确保一次只运行一个shell脚本实例的快速方法
- 如何在Windows命令提示符下运行.sh ?
- Java SimpleDateFormat("yyyy-MM-dd' t ' hh:mm:ss' z '")给出的时区为IST
- 如何从命令行将每两行合并为一行?
- 如何复制在bash所有目录和文件递归?
- 在Java中转换字符串到日历对象
- 如何从命令行通过mysql运行一个查询?
- 在创建守护进程时执行双fork的原因是什么?
- 在Bash命令提示符上添加git分支
- 如何在Android中获取当前日期?
- 如何创建一个日期对象从字符串在javascript