ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux – Bash:date -d在参数化日期时抛出“无效日期”

2019-08-14 07:52:56  阅读:11  来源: 互联网

标签:linux date shell-script



参见英文答案 > Difference between ‘ and ” on command line (bash)?                                     2个
当我将代码中的日期参数化为:

str_last_log_date="2017-07-24"
last_log_date=$(date -d '${str_last_log_date}' +%s)
threshold_days_ago=$(date -d 'now - 2 days' +%s)
echo "last_log_date ${last_log_date}  thres_days_ago ${threshold_days_ago}"

给出错误:

date: invalid date ‘${str_last_log_date}’
last_log_date thres_days_ago 1500969455

但是如果我没有参数化日期并直接传递,它会给出正确的结果:

last_log_date=$(date -d '2017-07-24' +%s)
threshold_days_ago=$(date -d 'now - 2 days' +%s)
echo "last_log_date ${last_log_date}  thres_days_ago ${threshold_days_ago}"

last_log_date 1500854400 thres_days_ago 1500969511

有小费吗?

解决方法:

last_log_date=$(date -d '${str_last_log_date}' +%s)

应该更新为(删除单引号):

last_log_date=$(date -d ${str_last_log_date} +%s)



标签:linux,date,shell-script

专注分享技术,共同学习,共同进步。

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有