Use date +%Y%m%d
para imprimir a data atual.
Use date --date '1 day ago' +%Y%m%d
para imprimir a data de ontem ( date
do GNU).
Use date -v -1d +Y%m%d
(FreeBSD).
Eu preciso escrever uma variável com a função "date" e preciso que o formato seja yyyymmdd (por exemplo, 20151031). Também removerei um dia (por exemplo, 20151031 se torna 20151030) Eu usaria bash.
Obrigado!
bash-4.2 e acima têm suporte embutido para isso (inspirado em algo similar em ksh93):
printf -v now '%(%s)T' -1
printf '%(%Y%m%d)T\n' "$((now - 86400))"
Imprimiria a data de ontem (bem, a data 86400 segundos atrás) no formato AAAAMMDD. Pode não funcionar se for executado em certas horas da noite no horário de inverno / horário de verão (quando os dias têm 23 ou 25 horas de duração).
Provavelmente seria mais confiável para esses casos se escrito como:
printf -v now '%(%s:%H)T' -1
printf '%(%Y%m%d)T\n' "$((${now%:*} - 3600 * (12 + ${now#*:})))"