我正在写一个bash脚本来获取使用rest api的用户列表,并删除6个月内不活跃的用户。为此,我提取了json数据并获取了名称和日期字段。现在我正尝试写一个if条件来删除6月份以来不活跃的用户。但是条件不起作用。有人能帮忙吗?
userlist="2022-4-30
date= date -d "-6 month" +%Y-%m-%d
if [[ "$userlist" < "$date" ]]
then
echo "Inactive user. Delete it"
else
echo "Don't delete"
fi
谢谢大家!
1条答案
按热度按时间rjzwgtxy1#
您的格式不匹配,并且您正在进行字符串比较。
如果你的格式匹配的话,可能会有用-
月份没有前导零,并且在任何字符串基本匹配中
4
都大于0
。不过,最好还是换成实际的数学,这太脆弱了。
将格式更改为纪元秒,并使用
((...))
而不是[[ ... ]]
进行测试。请注意,如果不指定时间,H:M:S默认为00:00:00,并且
<
不是<=
,因此6个月前的采样日期 * 正好 * 是截止时间戳,并且不 * 小于 *,因此它要求删除它。