![](https://www.alaica.com/wp-content/uploads/linux-2.gif)
我想在编写 shell 脚本时在 UNIX 或 Linux 操作系统下递增日期。例如,Apr/27/2011 应递增为 Apr/28/2011,依此类推。如何在 UNIX 或 Linux shell 中递增日期?
您可以在 GNU/date 实用程序下显示由格式(也称为相对日期格式)描述的时间和日期,该实用程序是 Linux 和 UNIX 类操作系统的一部分。默认格式是显示当前日期和时间。要显示明天的日期,请输入:
示例输出:
$ date
$ date --date="-1 days ago"
4 月 27 日星期三 02:29:59 IST 2011 4 月 28 日星期四 02:29:34 国际标准时间 2011
您可以使用bash for 循环,如下所示:
#!/bin/bash for i in { 1 .. 10 } do date --date = "- $i days ago" done
输出示例:
4 月 28 日星期四 02:33:02 国际标准时间 2011 4 月 29 日星期五 02:33:02 国际标准时间 2011 2011 年 4 月 30 日星期六 02:33:02 国际标准时间 2011 年 5 月 1 日星期日 02:33:02 国际标准时间 2011 年 5 月 2 日星期一 02:33:02 国际标准时间 2011 年 5 月 3 日星期二 02:33:02 国际标准时间 2011 年 5 月 4 日星期三 02:33:02 国际标准时间 5 月 5 日星期四 02:33:02 国际标准时间 2011 2011 年 5 月 6 日星期五 02:33:02 国际标准时间 2011 年 5 月 7 日星期六 02:33:02 国际标准时间
将日期格式更改为 DD/MM/YY
使用以下语法:
$ date +"%d/%m/%y" --date="-5 days ago"
这是更新代码:
#!/bin/bash # 以 dd/mm/yy 格式递增日期 for i in { 1 .. 10 } do date + "%d/%m/%y" --date = "- $i days ago" 完毕
输出示例:
2011年4月28日 2011年4月29日 2011年4月30日 2011年1月5日 2011年2月5日 2011年3月5日 2011年4月5日 2011年5月5日 2011年6月5日 2011年7月5日
您可以在备份脚本中使用相同的技术来调整日期和时间。
也可以看看:
- 使用 Linux date 命令获取昨天或明天。
- 如何使用 yest – 一个命令行日期/时间操作和格式化程序,用于从指定日期添加或减去天、小时和/或分钟。