【发布时间】:2022-01-24 14:40:50
【问题描述】:
我正在尝试创建一个循环来遍历 2 个日期。 到目前为止,我有这个,但是它正在回到过去。我希望它以 start_date 开始,以 end_date 结束。 我试图交换它们,但它不喜欢那样并无限增加+1day。任何帮助将不胜感激。
#!/usr/bin/env bash
end_date="21-12-21"
start_date="21-11-20"
# Set a counter variable
counter=0
#Increase the counter to get back in time
while [ "$end_date" != "$start_date" ]; do
end_date=$(date -v -${counter}d '+%y-%m-%d')
echo $end_date
counter=$((counter + 1))
done
这就是它产生的结果
21-12-23
21-12-22
21-12-21
21-12-20
21-12-19
21-12-18
21-12-17
21-12-16
21-12-15
21-12-14
21-12-13
21-12-12
21-12-11
21-12-10
21-12-09
21-12-08
21-12-07
21-12-06
21-12-05
21-12-04
21-12-03
21-12-02
21-12-01
21-11-30
21-11-29
21-11-28
21-11-27
21-11-26
21-11-25
21-11-24
21-11-23
21-11-22
21-11-21
21-11-20
我也在 Mac 上运行它,它似乎对日期格式非常挑剔。到目前为止,这是我发现它工作的唯一方法。
【问题讨论】:
-
这对您有帮助吗? stackoverflow.com/a/37225205/3387716
-
顺便说一句,文件的前两个字节必须是
#和!才能使 shebang 有效。 -
哦,谢谢,复制代码时一定错过了
-
@newbiecoder - 很高兴你成功了 - 祝你的脚本好运。 (Linux 会宠坏你
:)