gpt4 book ai didi

bash - 比较bash中的两个日期字符串

转载 作者:行者123 更新时间:2023-12-04 06:05:16 24 4
gpt4 key购买 nike

我在使用检查表日期以确保从站数据是最新的脚本时遇到问题

问题是日期相等返回不正确:

NOW=$(date +"%Y-%m-%d")
VALUE=`mysql -uroot -p database -e "select DATE_FORMAT(create_date,'%Y-%m-%d') as '' from actions order by id desc limit 1"`
echo $NOW $VALUE
if [ "$?" -ne 0 ]; then
MSG="MySQL check data date failed"
echo $MSG
echo $MSG > $MESSAGE
/bin/mail -s "$SUBJECT" "$EMAIL" < $MESSAGE
exit 7
fi
if [ "$NOW" != "$VALUE" ]; then
echo "not equal"
fi

输出是它们不相等:

2011-12-08 2011-12-08
不相等

我的猜测是我正在比较两种不同的类型,但根据 bash 文档,情况不应该如此。
谁可以给我解释一下这个?
谢谢

最佳答案

如果打开shell调试set -vx ,您将看到显示的每一行(或代码块,如 while、for 循环)(详细模式),然后您会在执行时看到该行,所有变量都扩展为当前值。将最后一个条件更改为

if [ "X${NOW}X" != "X${VALUE}X" ] ; then ....

您可以轻松判断 $NOW$VALUE嵌入任何额外的空白字符。一旦您可以看到差异在哪里,您就可以轻松确定如何修复这些值的分配。

我希望这有帮助。

关于bash - 比较bash中的两个日期字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8436881/

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