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:%-HVe 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#nformě, např.10#09echo $((10#09*2)) 18Viz část Aritmetické vyhodnocení v příručce bash.