bash - 表达式的日期增量
问题描述
给定这个表达式:
#!/bin/bash
date=20210825
partitions=3
for i in $(seq 0 $partitions); do
start_time=$(date -d "${date} + ${i}*24/$partitions hour" +%H)"000"
stop_time=$(date -d "${date} + $((i + 1))*24/$partitions hour" +%H)"000"
echo $start_time
echo $stop_time
done
我正在尝试根据分区数评估日期增量,最终目标是 N 对 start_time 和 stop_time,其中 N=partitions。它一直在抱怨 start_time 和 stop_time 表达式的语法。用迭代器 j 做一个简单的增量是可行的,但它的任何算术目前都不起作用。
解决方案
运行您的代码显示:
日期:无效日期'20210825 + 0*24/3 小时'</p>
那是因为计算应该在$(())
语法内。
将代码更改为:
#!/bin/bash
date=20210825
partitions=3
for i in $(seq 0 $partitions); do
start_time=$(date -d "$((date + ($i * 24 / $partitions))) hour" +%H)"000"
stop_time=$(date -d "$((date + (($i + 1) * 24 / $partitions))) hour" +%H)"000"
echo $start_time
echo $stop_time
done
您可能需要更改这些顺序()
以获得所需的输出。目前它显示:
04000
12000
12000
20000
20000
04000
04000
12000
您可以在此在线演示中进行测试。
推荐阅读
- java - 从不一致的 Android 本机文件选取返回的 URI 中获取 URI 文件路径
- android - 连接/断开 USB BroadcastReceiver 时隐藏/取消隐藏应用程序
- javascript - 仅构建 scss 文件到 css 防止编译/构建 JS 或仅构建 js,同时防止使用 webpack 4 编译 scss
- excel - VBA 集合检索数据但不显示值
- python - 有没有更好的方法来重新采样存储在 Python 中的二进制文件中的时间序列?
- angular - Angular Http拦截器无法使用localStorage获取用户令牌以添加到标头
- python - 在 macOS Sierra 上使用 git-review 的 RequestsDependencyWarning
- .htaccess - htaccess
影响子目录的指令 - html - 使用 Ruby,从 JSON 响应中的 HTML 字符串中获取值
- excel - 取决于相应单元格中是否存在数据的可变图表轴