Vielleicht irre ich mich, aber meiner Meinung nach liegt der Fehler woanders. Zwar bekommst du jetzt keine Fehlermeldung mehr, dafür aber vermutlich Unsinn bei der RAM-Ausgabe von screenfetch?
Das "-" (gequotetes Minuszeichen) im awk-Befehl (Zeile 1801) ist wohl durchaus gewollt und m.E. bei der weiteren Verarbeitung der Variablen "$mem" innerhalb der arithmetischen Ausdrücke der beiden folgenden Zeilen 1802 und 1803 sinnvoll.
Kann es vielmehr sein, dass die veränderte Zeile in sid
Code: Alles auswählen
mem=$(free -b | awk -F ':' 'NR==2{print $2}' | awk '{print $1"-"$6}')
auf die hikaru hinwies, schon die Korrektur des Bugs darstellt? Der ursprüngliche awk-Befehl
vertut sich nämlich im Falle eines hinreichend großen Arbeitsspeichers in den Spalten, weil in der Ausgabe von "free -b" zwischen "Speicher:" und Bytes (gesamt) kein Leerzeichen steht:
Code: Alles auswählen
$ free -b
gesamt benutzt frei gemns. Puffer/Cache verfügbar
Speicher:67344703488 14921134080 46072750080 4848996352 6350819328 46876737536
Swap: 17179865088 0 17179865088
Ersetze vielleicht mal versuchsweise in
/usr/bin/screenfetch die Zeile 1801 durch ihre oben angegebene sid-Version, die für awk als ersten Trenner das ":" benutzt.