gpt4 book ai didi

Bash:开始日期小于等于结束日期

转载 作者:行者123 更新时间:2023-11-29 09:22:56 25 4
gpt4 key购买 nike

#!/bin/bash
# slightly malformed input data
input_start=2014-11-1
input_end=2016-01-1

# After this, startdate and enddate will be valid ISO 8601 dates,
# or the script will have aborted when it encountered unparseable data
# such as input_end=abcd
startdate=$(date -I -d "$input_start") || exit -1
enddate=$(date -I -d "$input_end") || exit -1

m="$startdate"
while [ "$m" != "$enddate" ]; do
echo $m
m=$(date -I -d "$m + 1 month")
done

“脚本运行良好,但当我想更改 While 循环条件时,即 '<=' '小于或等于' 即使我尝试使用“-le”也会给出错误。我想在这里做的是开始日期<= enddate 在 while 循环中。任何人都可以建议需要做什么来克服这个问题。

Same Code

最佳答案

-le用于数值数据。 2014-11-01不是数字。使用 <> . (您需要将它们转义为 \<\> 。或者使用 [[ 而不是 [ 。)

有效,改变

while [ "$m" != "$enddate" ]; do

until [ "$m" \> "$enddate" ]; do

until [ "$m" '>' "$enddate" ]; do

until [[ "$m" > "$enddate" ]]; do

或者,使用 seconds since epoch而不是 ISO8601格式。

while [ "$(date -d "$m" +%s)" -le  "$(date -d "$enddate" +%s)" ]; do

关于Bash:开始日期小于等于结束日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43672278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com