Mám toto:
date +"%H hours and %M minutes"
Používám festival, abych to řekl... ale říká to jako:„nula devět hodin“.. Chci, aby to říkalo „devět hodin“!
ale datum mi vždy dá 09... tak by mě zajímalo, jestli bash může snadno udělat z toho jen 9?
ve složitém skriptu, který jsem zkoušel jako
printf %d 09
ale selže.. ne osmičkové 🙁
nějaký nápad?
Přijatá odpověď:
-
Ve vašem případě můžete jednoduše zakázat nulové odsazení přidáním
-
po%
ve formátovacím řetězci data:%-H
Ve výchozím nastavení se do číselných polí vkládá datum nulami. Za „%“ mohou následovat následující volitelné příznaky:
-
(pomlčka) nevyplňujte pole_
(podtržítko) podložka s mezerami_
(nulový) blok s nulami^
pokud je to možné, používejte velká písmena#
pokud je to možné, použijte opačný případ
Viz manuál data
-
Pokud chcete interpretovat číslo v jiném základu, v bash
- Konstanty s počáteční 0 jsou interpretovány jako osmičková čísla.
- Začátek 0x nebo 0X označuje hexadecimální.
- Jinak mají čísla tvar [základ#]n, kde základ je desetinné číslo mezi 2 a 64 představující aritmetický základ a n je číslo v tomto základu
Chcete-li tedy číslo interpretovat jako desítkové, použijte
10#n
formě, např.10#09
echo $((10#09*2)) 18
Viz část Aritmetické vyhodnocení v příručce bash.