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 :%-HPar 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#nforme, par ex.10#09echo $((10#09*2)) 18Voir la section Évaluation arithmétique du manuel bash.