change - system time bash




Data do formato AAAA-MM-DD no shell script (8)

Eu tentei usar $(date) no meu script de shell bash, no entanto eu quero a data no formato YYYY-MM-DD. Como faço para conseguir isso?


Com o recente Bash (versão ≥ 4.2), você pode usar o printf embutido com o modificador de formato %(strftime_format)T :

$ printf '%(%Y-%m-%d)T\n' -1  # Get YYYY-MM-DD (-1 stands for "current time")
2017-11-10
$ printf '%(%F)T\n' -1  # Synonym of the above
2017-11-10
$ printf -v date '%(%F)T' -1  # Capture as var $date

No Bash:

obter ano-mês-dia a partir da date

DATE=`date +%Y-%m-%d`

obter ano-mês-dia hora: minuto: segundo a partir da date

DATE=`date '+%Y-%m-%d %H:%M:%S'`

Outros formatos de data disponíveis podem ser visualizados a partir das páginas de manual de data :

man date

Sempre que tenho uma tarefa assim, acabo caindo de volta

$ man strftime

para me lembrar de todas as possibilidades.


Tente: $(date +%F)


Você pode definir a data como variável de ambiente e depois você pode usá-lo

setenv DATE `date "+%Y-%m-%d"`
echo "----------- ${DATE} -------------"

ou

DATE =`date "+%Y-%m-%d"`
echo "----------- ${DATE} -------------"

Você pode fazer algo assim:

$ date +'%Y-%m-%d'

$(date +%F_%H-%M-%S)

pode ser usado para remover dois pontos (:) entre

saída

2018-06-20_09-55-58

date -d '1 hour ago' '+%Y-%m-%d'

A saída seria 2015-06-14 .







strftime