Quelle est la syntaxe pour obtenir le nom du mois en cours (par exemple jan ou feb) dans un script bash
?
Vous pouvez utiliser la commande date(1)
.
Par exemple:
date +%b
Le manuel strftime(3)
(man 3 strftime
), S'il est installé sur votre système, répertorie toutes les chaînes de formatage qui peuvent être utilisées avec l'utilitaire date
ou %(...)T
formatez les chaînes avec printf
. Le manuel de la commande date
peut également contenir les chaînes de formatage prises en charge.
Pour utiliser l'un d'eux, par exemple %b
("Le nom de mois abrégé de la locale.") Ou %B
("Le nom de mois complet de la locale"), vous utilisez le +
option pour date
:
$ date +%B
December
$ date +%b
Dec
$ date +'%B is abbreviated as "%b"'
December is abbreviated as "Dec"
Ou, avec printf
(dans ksh93
Ou bash
4.3+):
$ printf '%(%B)T\n'
December
$ printf '%(%b)T\n'
Dec
$ printf '%(%B is abbreviated as "%b")T\n'
December is abbreviated as "Dec"
Pour obtenir un mois abrégé en minuscules dans bash
(si vos paramètres régionaux ne fournissent pas toujours des noms de mois en minuscules):
$ month=$( date +%b )
$ printf 'It is %s\n' "${month,,}"
It is dec
L'extension du paramètre ${parameter,,pattern}
Modifiera la casse de $parameter
Partout où pattern
correspond. Dans ${m,,}
, Le motif correspond partout, donc toute la chaîne dans $m
Est en minuscules.
Ou comme dans ksh
, déclarez au préalable la variable en minuscule avec:
typeset -l month
Avec bash
de printf
, vous pouvez automatiquement insérer la chaîne générée dans une variable scalaire¹ en utilisant -v
:
$ printf -v month '%(%b)T'
$ printf 'It is %s\n' "${month,,}"
It is dec
¹ ou l'élément clé0
D'un tableau ou d'une variable de tableau associatif