Tengo esto:
date +"%H hours and %M minutes"
Uso el festival para decirlo ... pero dice: "cero nueve horas" ... ¡quiero que diga "nueve horas"!
pero la fecha siempre me da 09 ... así que me pregunto si bash puede hacer que se convierta en solo 9.
en el complejo script que intenté como
printf %d 09
pero falla ... no octal :(
¿alguna idea?
bash
shell
date
arithmetic
Poder de acuario
fuente
fuente
Respuestas:
En su caso, simplemente puede deshabilitar el relleno cero agregando
-
después%
en la cadena de formato de fecha:%-H
Ver manual de fecha
Si desea interpretar el número en una base diferente, en bash
Entonces, para interpretar un número como decimal, use la
10#n
forma, por ejemplo.10#09
Consulte la sección Evaluación aritmética del manual de bash.
fuente
echo $((011)) $((10#011))
es otro buen ejemplo que sale9 11
lat=048 ; latd=${lat#0} ; echo $((latd-1))
funciona, perolat=-048 ; latd=${lat#0} ; echo $((latd-1))
no funciona.plus=$((10#01))
Si está intentando hacer comparaciones en decimal con valores de fecha, he encontrado que este método es muy efectivo:
Eso siempre produce un valor decimal. Entonces puedo hacer esto:
No hay problema con 08 o 09 de esta manera. El uso de% 10 en lugar de% 100 le ofrece rangos de diez minutos de 0 a 9. También encuentro que lo siguiente da valores decimales, sin ceros a la izquierda:
fuente
Portablemente, puede eliminar fácilmente un líder
0
de una variable. Esto deja la variable sin cambios si no hay guía0
.En bash, ksh o zsh, puede usar los patrones de glob adicionales de ksh para eliminar cualquier número de
0
s iniciales . En bash, correshopt -s extglob
primero. En zsh, corresetopt kshglob
primero.fuente
En general en bash:
Resultando en
O diferente:
Me sorprende que la fecha no tenga las opciones de formato adecuadas.
fuente