Par exemple, je souhaite afficher la date et l'heure actuelles au format suivant:
yyyymmddhhmmss
Comment je fais ça? Il semble que la plupart format de date est livré avec -
, /
, :
, etc.
Voici:
date +%Y%m%d%H%M%S
Comme man date
indiqué près du haut, vous pouvez utiliser la date
commande comme ceci:
date [OPTION]... [+FORMAT]
Autrement dit, vous pouvez lui donner un paramètre de format, en commençant par un +
. Vous pouvez probablement deviner la signification des symboles de mise en forme que j'ai utilisés:
%Y
c'est pour l'année%m
c'est pour un mois%d
c'est pour la journéeVous pouvez trouver ceci, ainsi que d'autres symboles de mise en forme dans man date
.
Un exemple simple de script shell
#!/bin/bash
current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;
Sans format de ponctuation: - +% Y% m% d% H% M% S
Avec ponctuation: - +% Y-% m-% d% H:% M:% S
"`date +%Y-%m-%d %H:%M:%S`"
me donne undate: illegal time format
Si vous utilisez Bash, vous pouvez également utiliser l'une des commandes suivantes:
Vous pouvez utiliser l'option
-v varname
pour stocker le résultat au$varname
lieu de l'imprimer sur stdout:Alors que la commande date sera toujours exécutée dans un sous-shell (c'est-à-dire dans un processus séparé), printf est une commande intégrée et sera donc plus rapide.
la source
%
options que vous pouvez transmettre, cela semble utiliser ladate
commande. Alors,man date
vous donnera les options disponibles.Sans ponctuation (comme @Burusothman l'a mentionné):
O / P:
Avec ponctuation :
O / P:
la source
Façon intéressante / amusante de le faire en utilisant l' expansion des paramètres (nécessite
bash 4.4
ou plus récent):la source