Du bist nicht angemeldet.
Hallo,
wenn mein Terminal geöffnet wird, kommt in der ersten Zeile folgende Fehlermeldung:
/usr/bin/screenfetch: Zeile 1802: 1255878656-: Syntaxfehler: Operator erwartet. (Fehlerverursachendes Zeichen ist "-").
Beim Starten vom Terminal werden ja zu erst Informationen zum System angezeigt. Die Anzeige vom RAM ist nicht ganz korrekt, es fehlt dort etwas.
Wie bekomme ich die Meldung wieder weg?
Offline
Was gibt denn
echo $((mem / 1024 / 1024))
(das steht in Zeile 1802 von /usr/bin/screenfetch)
Online
Der Fehler liegt in der Zeile 1801
mem=$(free -b | awk 'NR==2{print $2"-"$7}')
in der Zeile muss "-" durch " " ersetzt werden, richtig wäre dann so
mem=$(free -b | awk 'NR==2{print $2" "$7}')
damit gibt es die Fehlermeldung nicht mehr.
Alternativ dazu kann man Neofetch verwenden.
Offline
Bei mir funktionieren
mem=$(free -b | awk 'NR==2{print $2"-"$7}')
echo $((mem / 1024 / 1024))
sowohl mit Zsh als auch mit der Bash.
Offline
Bei mir funktionieren
mem=$(free -b | awk 'NR==2{print $2"-"$7}') echo $((mem / 1024 / 1024))
sowohl mit Zsh als auch mit der Bash.
Tjoar …
$ mem=$(free -b | awk 'NR==mem=$(free -b | awk 'NR==2{print $2"-"$7}')
$ echo $((mem / 1024 / 1024))
bash: 864854016-: Syntaxfehler: Operator erwartet. (Fehlerverursachendes Zeichen ist "-").
$ ps -p $$
PID TTY TIME CMD
2178 pts/0 00:00:00 bash
$ bash --version | head -n1
GNU bash, Version 5.1.4(1)-release (x86_64-pc-linux-gnu)
$ uname -rms
Linux 5.10.16-arch1-1 x86_64
Ansonsten bekommt man mit grep MemFree /proc/meminfo | awk '{print $2}' den freien RAM in kB.
$ grep MemFree /proc/meminfo | awk '{print $2}'
14520088
Den Wert kann man dann ja weiterverarbeiten.
Offline
Spannender Fall: Mittlerweile kann ich sagen, dass es bei mir nur ab und zu klappt.
Zuerst Arch mit Sway gestartet => klappt.
Dann Sway beendet und nur in der Konsole => klappt nicht mehr
Dann in der Konsole
LANG=C free -b | awk 'NR==2{print $2"-"$7}'
=> klappt wieder
Dann wieder Sway gestartet => klappt nicht mehr
In Sway mit
LANG=C free -b | awk 'NR==2{print $2"-"$7}'
=> klappt wieder
Entweder liegt es an den Feldtrennzeichen oder an der Lokalisierung. Scheint also keine robuste Lösung zu sein.
Offline
Vermutlich Lokalisierung und das dadurch genutzte andere Trennzeichen.
/proc/meminfo zu benutzen ist ist imho robuster. Muss man sich halt hinterher selbst so parsen wie man es braucht.
Offline