【问题标题】:How do I add time to a date in unix shell script? [duplicate]如何在 unix shell 脚本中为日期添加时间? [复制]
【发布时间】:2019-02-22 23:18:46
【问题描述】:

我有一个包含日期值的文件。我希望能够提取文件的最后一行,格式为“'2018-09-18 16:42:57'” 添加 1 天并将其存储到变量中。我现在的代码如下所示,但它不起作用:

start_date=$(tail -n 1 run_dates.txt)
start_date=$(start_date -d "+1 day")

执行此操作的正确语法是什么?

【问题讨论】:

  • 显示您在以前的方法中遇到的特定错误将是一个很好的起点。如果错误消息告诉我们您正在尝试使用适用于 GNU date 的命令,但您没有该版本,这为我们提供了足够的信息来实际提供有用的答案。目前,这里没有具体问题,所以我们只能猜测。
  • "...but it doesn't work" 不是一个好的问题陈述。请显示变量值并解释它是如何不起作用的。

标签: linux bash shell unix


【解决方案1】:

您可以使用这个单行命令gnu date 提取文件的最后一行,添加一天并将输出存储在一个变量中:

start_date=$(date -d "$(tail -n 1 run_dates.txt) +1 day" '+%Y-%m-%d %T')

检查变量内容使用:

declare -p start_date

declare -- s="2018-09-19 11:42:57"

【讨论】:

  • 可能值得注意的是 GNUisms。
  • 谢谢,这是公平的观点(已编辑)
猜你喜欢
  • 2022-10-17
  • 1970-01-01
  • 2021-09-06
  • 2010-09-05
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
相关资源
最近更新 更多