Aprenda cómo dar formato a la fecha y la hora para usar en un script de shell o como una variable junto con diferentes ejemplos de formato.
Hay muchas veces que necesita usar la fecha en su script de Shell, p. para nombrar el archivo de registro, para pasarlo como una variable, etc. Por lo tanto, necesitamos un formato diferente de fechas que se pueda usar como una cadena o variable en nuestros scripts. En este artículo, veamos cómo usar la fecha en el script de shell y los diferentes tipos de formatos que puede usar.
- Verifique el comando timedatectl para administrar fácilmente la fecha y la hora en Linux
¿Cómo usar la fecha en el script de shell?
Puede usar la fecha insertando la ejecución de shell dentro del comando. Por ejemplo, si desea crear un archivo de registro insertando la fecha actual en él, puede hacerlo de la siguiente manera:
root@kerneltalks # echo test > /tmp/`date +%d`.txt root@kerneltalks # ls -lrt -rw-r--r--. 1 root root 5 Sep 10 09:10 10.txt
Básicamente, debe pasar el identificador de formato con +%
hasta el comando de fecha para obtener el formato deseado de la salida. Hay un suministro de comando de fecha de identificador diferente.
Incluso puede guardar un formato de fecha específico en alguna variable como –
root@kerneltalks # MYDATE=`date +%d.%b.%Y` root@kerneltalks # echo $MYDATE 10.Sep.2018
Diferentes variables de formato para el comando de fecha
Estos identificadores de formato son del comando de fecha man
página:
%a locale’s abbreviated weekday name (e.g., Sun) %A locale’s full weekday name (e.g., Sunday) %b locale’s abbreviated month name (e.g., Jan) %B locale’s full month name (e.g., January) %c locale’s date and time (e.g., Thu Mar 3 23:05:25 2005) %C century; like %Y, except omit last two digits (e.g., 20) %d day of month (e.g, 01) %D date; same as %m/%d/%y %e day of month, space padded; same as %_d %F full date; same as %Y-%m-%d %g last two digits of year of ISO week number (see %G) %G year of ISO week number (see %V); normally useful only with %V %h same as %b %H hour (00..23) %I hour (01..12) %j day of year (001..366) %k hour ( 0..23) %l hour ( 1..12) %m month (01..12) %M minute (00..59) %N nanoseconds (000000000..999999999) %p locale’s equivalent of either AM or PM; blank if not known %P like %p, but lower case %r locale’s 12-hour clock time (e.g., 11:11:04 PM) %R 24-hour hour and minute; same as %H:%M %s seconds since 1970-01-01 00:00:00 UTC %S second (00..60) %T time; same as %H:%M:%S %u day of week (1..7); 1 is Monday %U week number of year, with Sunday as first day of week (00..53) %V ISO week number, with Monday as first day of week (01..53) %w day of week (0..6); 0 is Sunday %W week number of year, with Monday as first day of week (00..53) %x locale’s date representation (e.g., 12/31/99) %X locale’s time representation (e.g., 23:13:48) %y last two digits of year (00..99) %Y year %z +hhmm numeric timezone (e.g., -0400) %:z +hh:mm numeric timezone (e.g., -04:00) %::z +hh:mm:ss numeric time zone (e.g., -04:00:00) %Z alphabetic time zone abbreviation (e.g., EDT)
¡Usando combinaciones de lo anterior, puede obtener el formato de fecha deseado como salida para usar en el script de shell! Incluso puedes usar %n
para nueva línea y %t
para agregar una pestaña en las salidas que en su mayoría no son necesarias ya que la usará como una sola cadena.
Ejemplos de diferentes formatos de fecha
Para su conveniencia y listo para usar, a continuación enumeré combinaciones para diferentes formatos de fecha.
root@kerneltalks # date +%d_%b_%Y 10_Sep_2018 root@kerneltalks # date +%D 09/10/18 root@kerneltalks # date +%F-%T 2018-09-10-11:09:51 root@kerneltalks # echo today is `date +%A` today is Monday root@kerneltalks # echo Its `date +%d` of `date +%B" "%Y` and time is `date +%r` Its 10 of September 2018 and time is 11:13:42 AM