从bash变量中减去数字 - 找不到命令

时间:2018-01-30 18:09:29

标签: bash variables

我是bash的新手。我试图找到答案,但无法找到解决方案。我试图从$yesterday_date中减去86400,但我最终得到了一个未找到的"命令"错误。

(我知道还有其他方法可以从日期中减去,但我仍然希望解决这个问题。)

脚本部分:

yesterday_date=$(date +%s)
echo $yesterday_date
yesterday_date=$($yesterday_date-86400)
echo $yesterday_date

脚本输出:

1517335264
./myscript.sh: line 11: 1517335264-86400: command not found

问题是什么?感谢。

2 个答案:

答案 0 :(得分:2)

Bash为算术运算提供((...))。您不必在$之前使用((..))

yesterday_date=$(date +%s)
echo "$yesterday_date"
((yesterday_date-=86400))
echo "$yesterday_date"

答案 1 :(得分:0)

你可以让日期做数学运算:

echo $(date -d "now -86400 seconds" +%s)
1517268350

或消除幻数:

echo $(date -d "now -1 day" +%s)
1517268356

甚至更多文字:

echo $(date -d "yesterday" +%s)
1517268364

为了好玩,日期命令甚至还有一个teatime选项。 ;)