使用日期在Bash中获取明天的日期

Cob*_*0nm 5 unix bash shell

我想编写一个bash脚本,它将在下一天的日期运行给定的但是过程数据,我当前的方法是获取unix时间戳并为其添加一些数秒的时间,但我无法让它工作,并且避风港还没找到我在网上寻找的东西.

这是我尝试过的,我觉得问题是它的字符串不是数字,但我不太了解bash确定,这是正确的吗?我该如何解决这个问题?

today="$(date +'%s')"

tomorrow="$($today + 86400)"

echo "$today"

echo "$tomorrow"
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 8

如果你有gnu-date第二天的话,你可以这样做:

date -d '+1 day'
Run Code Online (Sandbox Code Playgroud)


gei*_*rha 8

$(...)是命令替换。您正在尝试$today + 86400作为命令运行。

$((...))是算术展开。这就是你想要使用的。

tomorrow=$(( today + 86400 ))
Run Code Online (Sandbox Code Playgroud)

另请参阅http://mywiki.wooledge.org/ArithmeticExpression,了解有关在 shell 中进行算术的更多信息。


Dou*_*ion 6

该问题的某些答案取决于是否安装了GNU日期。如果您没有GNU日期,则可以使用date带有该-v选项的内置命令。

命令

$ date -v+1d

返回明天的日期。

您可以将其与所有标准date格式选项一起使用,因此

$ date -v+1d +%Y-%m-%d

以YYYY-MM-DD格式返回明天的日期。

  • 我最终使用了 `date --date="tomorrow" +%d 2>&1 | 任何情况下的日期 -v +1d +%d` :) (2认同)