【发布时间】:2021-08-29 20:36:49
【问题描述】:
我正在创建一个条件,以纪元格式检查实际日期并以纪元格式比较另一个字符串;如果字符串超过 10 天,请执行一些操作...
我尝试过这样的事情:
#!/bin/bash
timeago='10 days ago'
actual_date=$(date --date "now" +'%s')
last_seen_filter=$(date --date "$timeago" +'%s')
echo "INFO: actual_date=$actual_date, last_seen_filter=$last_seen_filter" >&2
if [ "$actual_date" -lt "$last_seen_filter" ]; then
echo "something"
else
echo "do something"
fi
或
#!/bin/bash
cutoff=$(date -d '10 days ago' +%s)
key="1624684050 1624688000"
while read -r "$key"
do
age=$(date -d "now" +%s)
if (($age < $cutoff))
then
printf "Warning! key %s is older than 10 days\n" "$key" >&2
fi
done < input
这还不够我需要,我在一个名为 converted_data 的文件中有纪元日期,我需要在 if 比较中包含这个字符串。
1624684050
1634015250
1614661650
1622005650
【问题讨论】:
-
你有非常奇怪的间距错误,也许在寻求人工帮助之前尝试shellcheck.net。
-
但是您的实际问题是什么?这些数字与您的代码有何关系? (而且还有多个间距错误。)
-
真的需要比较 10 个日历日(您需要检查语言环境、时区、闰日、闰秒、夏令时等)还是
10 * 24 * 60 * 60 seconds的比较够好吗? -
@EdMorton 我正在尝试创建一个语言环境检查,如何将字符串中的纪元日期计算为实际日期,类似这样,如果纪元日期比实际日期更早(10 天),我的疑问是如何计算纪元日期,任何材料都可以帮助我!
-
好的,然后edit 你的问题是a)修复你发布的代码中的问题(复制/粘贴到@tripleee 建议的shellcheck.net,它会告诉你错误) b) 包含一个minimal reproducible example,其中包含简洁、可测试的样本输入和预期输出,以便我们为您提供帮助