比较shell脚本中的两个日期
我需要比较存储在两个变量中的两个日期,格式为YYYY-MM-DD。我想我可以将它们存储在另一个变量中,并使用一些tr-d-,然后像整数一样比较,但我不知道如何比较。提前谢谢 您可以使用date+%s-d your_date来获取自固定实例1970-01-01,00:00 UTC(称为epoch)以来的秒数。一旦你明白了这一点,你就很容易对约会做任何事情。还有几个选项可以将数字转换回日期。您可以使用date+%s-d your_date来获取自固定实例1970-01-01,00:00 UTC(称为历元)以来的秒数。一旦你明白了这一点,你就很容易对约会做任何事情。还有几个选项可以将数字转换回最新状态。您可能需要呼叫expr,具体取决于您的神秘外壳:比较shell脚本中的两个日期,shell,date,variables,Shell,Date,Variables,我需要比较存储在两个变量中的两个日期,格式为YYYY-MM-DD。我想我可以将它们存储在另一个变量中,并使用一些tr-d-,然后像整数一样比较,但我不知道如何比较。提前谢谢 您可以使用date+%s-d your_date来获取自固定实例1970-01-01,00:00 UTC(称为epoch)以来的秒数。一旦你明白了这一点,你就很容易对约会做任何事情。还有几个选项可以将数字转换回日期。您可以使用date+%s-d your_date来获取自固定实例1970-01-01,00:00 UTC(称为
d1="2015-03-31" d2="2015-04-01"
if [ "$d1" = "$d2" ]; then
echo "same day"
elif expr "$d1" "<" "$d2" >/dev/null; then
echo "d1 is earlier than d2"
else
echo "d1 is later than d2"
fi
test命令或其别名[仅实现字符串相等和不相等运算符。当您为非bash shell提供此命令时:
[ "$d1" > "$d2" ]
>$d2部分被视为标准输出重定向。在本例中,将创建一个名为2015-04-01的零长度文件,条件命令变为
[ "$d1" ]
由于变量为非空,因此计算结果为成功状态
文件大小为零,因为[命令不生成标准输出。您可能需要调用expr,具体取决于您的神秘外壳:
d1="2015-03-31" d2="2015-04-01"
if [ "$d1" = "$d2" ]; then
echo "same day"
elif expr "$d1" "<" "$d2" >/dev/null; then
echo "d1 is earlier than d2"
else
echo "d1 is later than d2"
fi
test命令或其别名[仅实现字符串相等和不相等运算符。当您为非bash shell提供此命令时:
[ "$d1" > "$d2" ]
>$d2部分被视为标准输出重定向。在本例中,将创建一个名为2015-04-01的零长度文件,条件命令变为
[ "$d1" ]
由于变量为非空,因此计算结果为成功状态
文件大小为零,因为[command]不生成标准输出。为什么不执行字符串操作?我尝试了[var1>var2],但每次都变为真为什么不执行字符串操作?我尝试了[var1>var2],但每次都变为真