"날짜" 함수를 사용하여 변수를 작성해야 하며 형식은 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#*:})))"