"날짜" 함수를 사용하여 변수를 작성해야 하며 형식은 yyyymmdd(예: 20151031)여야 합니다. 또한 하루를 삭제하고(즉, 20151031이 20151030이 됨) bash를 사용하겠습니다.
감사해요!
답변1
date +%Y%m%d
현재 날짜를 인쇄하는 데 사용됩니다 . 어제 날짜를 인쇄하는
데 사용됩니다 (GNU ). (FreeBSD)를 사용하세요 .date --date '1 day ago' +%Y%m%d
date
date -v -1d +Y%m%d
답변2
bash-4.2 이상에는 이에 대한 지원이 내장되어 있습니다(ksh93의 유사한 기능에서 영감을 얻었습니다):
printf -v now '%(%s)T' -1
printf '%(%Y%m%d)T\n' "$((now - 86400))"
YYYYMMDD 형식으로 어제 날짜(86400초 전 날짜)를 인쇄합니다. 겨울/여름 시간 전환이 발생하는 특정 밤 시간(낮 길이가 23시간 또는 25시간인 경우)에 실행하면 작동하지 않을 수 있습니다.
다음 형식으로 작성하면 이러한 특수 사례에 대해 더 안정적일 수 있습니다.
printf -v now '%(%s:%H)T' -1
printf '%(%Y%m%d)T\n' "$((${now%:*} - 3600 * (12 + ${now#*:})))"