J'ai ceci :
date +"%H hours and %M minutes"
J'utilise festival pour le dire... mais ça dit comme :"zéro neuf heures".. Je veux qu'il dise "neuf heures" !
mais la date me donne toujours 09… alors je me demande si bash peut facilement faire en sorte que cela devienne juste 9 ?
dans le script complexe que j'ai essayé comme
printf %d 09
mais ça échoue.. pas octal 🙁
une idée ?
Réponse acceptée :
-
Dans votre cas, vous pouvez simplement désactiver le zéro padding en ajoutant
-
après%
au format chaîne de date :%-H
Par défaut, la date complète les champs numériques avec des zéros. Les indicateurs facultatifs suivants peuvent suivre '%' :
-
(trait d'union) ne remplissez pas le champ_
(trait de soulignement) pad avec espaces(zéro) pad avec des zéros
^
utiliser des majuscules si possible#
utiliser la casse inverse si possible
Voir le manuel des dates
-
Si vous voulez interpréter le nombre dans une base différente, en bash
- Les constantes précédées d'un 0 sont interprétées comme des nombres octaux.
- Un 0x ou 0X en tête indique une valeur hexadécimale.
- Sinon, les nombres prennent la forme [base#]n, où base est un nombre décimal entre 2 et 64 représentant la base arithmétique, et n est un nombre dans cette base
Donc, pour interpréter un nombre comme décimal, utilisez
10#n
forme, par ex.10#09
echo $((10#09*2)) 18
Voir la section Évaluation arithmétique du manuel bash.