コードで日付をパラメーター化すると:
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}"
エラーを与えます:
日付:無効な日付 ‘$ {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)
変数は、単一引用符で囲まれている場合は展開されません。代わりに二重引用符を使用してください:
date -d "${str_last_log_date}"