Diskussion:Runden und Formatieren von Zahlen in der bash
Aus BraLUG-Wiki
Version vom 29. Mai 2006, 19:25 Uhr von Bergeruw (Diskussion | Beiträge)
Sorry, ich muss einfach ein paar Sachen loswerden:
- wenn schon
bash
, dann kann man statt`expr 1 + 1`
auch gleich$((1 + 1))
nehmen- gut, wußte ich nicht...--Bergeruw 20:25, 29. Mai 2006 (CEST)
- m.M.n. sind die 2er-Einheiten zu bevorzugen (1 KiB = 1024 B statt 1 kB = 1000 B) - http://de.wikipedia.org/wiki/Speicherkapazität
- nun ja, kann man sehen wie man möchte denke ich...--Bergeruw 20:25, 29. Mai 2006 (CEST)
- für den relativ geringen Nutzen ist die Funktion ziemlich umständlich - mit
bc
geht es einfacher:
#!/bin/sh function my_format () { bc << EOD scale = 1; if ( $1 > (1000*1000*1000) ) print $1 / (1024*1024*1024)," GiB" else \\ if ( $1 > (1000*1000) ) print $1 / (1024*1024)," MiB" else \\ if ( $1 > 1000 ) print $1 / 1024," KiB" else \\ print $1," B" EOD }
Output bei deiner Eingabe:
298 B 2.9 KiB 29.1 KiB 291.0 KiB 2.8 MiB 28.4 MiB 284.1 MiB 2.7 GiB 27.7 GiB 277.5 GiB 1000 B
--MaD 14:58, 29. Mai 2006 (CEST)
Ziel war es ohne externe Programme wie z.B. bc
auszukommen -> die Lösung hatte ich vorher auch schon ;-) --Bergeruw 20:25, 29. Mai 2006 (CEST)