FatManStanding
Lieutenant
- Registriert
- Aug. 2021
- Beiträge
- 676
Hi,
vermutlich habe ich irgendeinen Denkfehler. Ich habe hier eine Liste von Dateigrößen die in while weiterverarbeitet wird. Die Größe ist in Byte. Es soll geprüft werden ob die Größe unter 1073741824 Byte ist (= 1024 * 1024 * 1024). Falls ja wird in Megabyte umgerechnet und eine Einheit dahinter gesetzt. Falls nicht wird alles in Gigabyte ausgegeben (das habe ich weggelassen weil man den Fehler schon so sieht). Meiner Logik nach sollte jeder Wert nach Umrechnung in Megabyte unter 1000 liegen - tun sie aber nicht, manche sind knapp drüber. Warum?
Vermutlich kann man das auch mit printf oder was weiß ich machen, es geht mir aber um das Erkennen meines Denkfehlers.
vermutlich habe ich irgendeinen Denkfehler. Ich habe hier eine Liste von Dateigrößen die in while weiterverarbeitet wird. Die Größe ist in Byte. Es soll geprüft werden ob die Größe unter 1073741824 Byte ist (= 1024 * 1024 * 1024). Falls ja wird in Megabyte umgerechnet und eine Einheit dahinter gesetzt. Falls nicht wird alles in Gigabyte ausgegeben (das habe ich weggelassen weil man den Fehler schon so sieht). Meiner Logik nach sollte jeder Wert nach Umrechnung in Megabyte unter 1000 liegen - tun sie aber nicht, manche sind knapp drüber. Warum?
Code:
size=$(ls -l *.ext | tr -s ' ' | cut -d " " -f 5)
echo "$size" | while read line; do
if [ "$line" -le 1073741824 ]; then
size=$(( line / 1024 / 1024 ))
fi
echo "$size"
done
Vermutlich kann man das auch mit printf oder was weiß ich machen, es geht mir aber um das Erkennen meines Denkfehlers.