내 코드의 날짜를 다음과 같이 매개변수화할 때:
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}"
마지막 로그 날짜 1500854400 thres_days_ago 1500969511
어떤 팁이 있나요?
답변1
작은따옴표로 묶으면 변수가 확장되지 않습니다. 대신 큰따옴표를 사용하세요.
date -d "${str_last_log_date}"
답변2
last_log_date=$(date -d '${str_last_log_date}' +%s)
다음으로 업데이트해야 합니다(작은따옴표 제거).
last_log_date=$(date -d ${str_last_log_date} +%s)