[Bash] Fecha de formato AAAA-MM-DD en script de shell


Answers

Pruebe: $(date +%F)

Question

Intenté usar $(date) en mi script bash shell, sin embargo, quiero la fecha en formato AAAA-MM-DD. ¿Cómo obtengo esto?




Está buscando el formato de fecha estándar ISO 8601 , por lo que si tiene fecha GNU (o cualquier comando de fecha más moderno que 1988) simplemente haga lo siguiente: $(date -I)




Con Bash reciente (versión ≥ 4.2), puede usar el printf incorporado con el 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



#!/bin/bash -e

x='2018-01-18 10:00:00'
a=$(date -d "$x")
b=$(date -d "$a 10 min" "+%Y-%m-%d %H:%M:%S")
c=$(date -d "$b 10 min" "+%Y-%m-%d %H:%M:%S")
#date -d "$a 30 min" "+%Y-%m-%d %H:%M:%S"

echo Entered Date is $x
echo Second Date is $b
echo Third Date is $c

Aquí x es la fecha de muestra utilizada y, a continuación, el ejemplo muestra tanto el formato de los datos como la obtención de fechas 10 minutos más que la fecha actual.