Apprenez à formater la date et l'heure à utiliser dans un script shell ou en tant que variable avec différents exemples de format.
Il y a plusieurs fois où vous devez utiliser la date dans votre script shell, par exemple. pour nommer le fichier journal, pour le transmettre en tant que variable, etc. Nous avons donc besoin d'un format de date différent pouvant être utilisé comme chaîne ou variable dans nos scripts. Dans cet article, voyons comment utiliser la date dans un script shell et quels sont les différents types de formats que vous pouvez utiliser.
- Vérifiez la commande timedatectl pour gérer facilement la date et l'heure sous Linux
Comment utiliser la date dans un script shell ?
Vous pouvez utiliser la date en insérant l'exécution du shell dans la commande. Par exemple, si vous souhaitez créer un fichier journal en y insérant la date actuelle, vous pouvez le faire de la manière suivante -
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
Fondamentalement, vous devez passer l'identifiant de format avec +%
to date pour obtenir le format de sortie souhaité. Il existe une autre fourniture de commande de date d'identification.
Vous pouvez même enregistrer un format de date spécifique dans une variable telle que –
root@kerneltalks # MYDATE=`date +%d.%b.%Y` root@kerneltalks # echo $MYDATE 10.Sep.2018
Variables de format différent pour la commande de date
Ces identifiants de format proviennent de la commande de date man
page :
%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)
En utilisant les combinaisons ci-dessus, vous pouvez obtenir le format de date souhaité en sortie à utiliser dans le script shell ! Vous pouvez même utiliser %n
pour nouvelle ligne et %t
pour ajouter un onglet dans les sorties qui ne sont généralement pas nécessaires puisque vous l'utiliserez comme une seule chaîne.
Différents exemples de format de date
Pour votre commodité et prêt à l'emploi, j'ai répertorié ci-dessous des combinaisons pour différents formats de date.
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