Ich habe dies:
date +"%H hours and %M minutes"
Ich benutze Festival, um es auszudrücken, aber es sagt so etwas wie:„null neun Stunden“. Ich möchte, dass es „neun Stunden“ sagt!
aber Datum gibt mir immer 09… also frage ich mich, ob Bash das einfach zu 9 machen kann?
im komplexen Skript habe ich versucht wie
printf %d 09
aber es schlägt fehl.. nicht oktal 🙁
Irgendeine Idee?
Akzeptierte Antwort:
-
In Ihrem Fall können Sie das Auffüllen mit Nullen einfach deaktivieren, indem Sie
-
anhängen nach%
im Formatstring des Datums:%-H
Standardmäßig füllt Datum numerische Felder mit Nullen auf. Die folgenden optionalen Flags können auf „%“ folgen:
-
(Bindestrich) Feld nicht auffüllen_
(Unterstrich) Pad mit Leerzeichen(Null) mit Nullen auffüllen
^
Verwenden Sie nach Möglichkeit Großbuchstaben#
Verwenden Sie nach Möglichkeit die umgekehrte Schreibweise
Siehe Datumshandbuch
-
Wenn Sie Zahlen in einer anderen Basis interpretieren möchten, in bash
- Konstanten mit einer führenden 0 werden als Oktalzahlen interpretiert.
- Ein führendes 0x oder 0X bedeutet hexadezimal.
- Andernfalls nehmen Zahlen die Form [Basis#]n an, wobei Basis eine Dezimalzahl zwischen 2 und 64 ist, die die arithmetische Basis darstellt, und n eine Zahl in dieser Basis ist
Um also eine Zahl als Dezimalzahl zu interpretieren, verwenden Sie
10#n
formen, z.10#09
echo $((10#09*2)) 18
Siehe Abschnitt Arithmetische Auswertung im Bash-Handbuch.