[gelöst][Debian11] Screenfetch Syntaxfehler in Zeile 1802

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Benutzeravatar
Sandersbeek
Beiträge: 174
Registriert: 04.05.2016 12:01:13

[gelöst][Debian11] Screenfetch Syntaxfehler in Zeile 1802

Beitrag von Sandersbeek » 18.08.2021 15:23:14

Hallo Liebe Linux Helfer,

ich hab mir Screenfetch Installiert.

Wenn ich mein Terminal Öffne, wird alles Korrekt Angezeigt, nur in der ersten Zeile steht folgendes:

Code: Alles auswählen

/usr/bin/screenfetch: Zeile 1802: 3681091584-: Syntaxfehler: Operator erwartet. (Fehlerverursachendes Zeichen ist "-").
Jetzt hab ich mir die Datei angesehen und bin in Zeile 1802 ( hab auch noch die Zeile davor und danach mit dazu geschrieben) gegangen, dort steht folgendes:

Code: Alles auswählen

1801: mem=$(free -b | awk 'NR==2{print $2"-"$7}')
1802: usedmem=$((mem / 1024 / 1024))
1803: totalmem=$((${mem//-*} / 1024 / 1024))
Kann mir da jemand weiter Helfen oder soll ich das einfach Ignorieren? :)
Zuletzt geändert von Sandersbeek am 18.08.2021 15:59:13, insgesamt 1-mal geändert.
Mit freundlichen Grüßen
Sandersbeek

System:
- Windows 10 Pro x64 / Debian 12
- CPU: Intel Core i7-10875H @ 16x 5.1GHz
- Mainboard: Tuxedo Gaming-Notebook
- Grafikkarte: NVIDIA GeForce RTX 2070 Super Mobile
- Festplatte: 4TB SanDisk Extreme PRO SSD (Win10)
- Festplatte: 1TB Samsung SSD 970 EVO Plus M.2 NVMe SSD (Debian)
- Festplatte: 2TB Samsung SSD 970 EVO Plus M.2 NVMe SSD (Debian/home)

Benutzeravatar
MSfree
Beiträge: 10752
Registriert: 25.09.2007 19:59:30

Re: [Debian11] Screenfetch Syntaxfehler in Zeile 1802

Beitrag von MSfree » 18.08.2021 15:43:54

Sandersbeek hat geschrieben: ↑ zum Beitrag ↑
18.08.2021 15:23:14

Code: Alles auswählen

1801: mem=$(free -b | awk 'NR==2{print $2"-"$7}')
1802: usedmem=$((mem / 1024 / 1024))
1803: totalmem=$((${mem//-*} / 1024 / 1024))
Kann mir da jemand weiter Helfen oder soll ich das einfach Ignorieren? :)
Zeile 1801 liefert nicht das, was der Autor wohl haben wollte. Bei mir kommt da die Zeichenkette

Code: Alles auswählen

4160126976-1764106240
heraus. Und da haben wir auch das störende Minuszeichen.

Wenn du die Zeile 1801 in

Code: Alles auswählen

mem=$(free -b | awk 'NR==2{print $2-$7}')
änderst, sollte es funktionieren.

Benutzeravatar
Sandersbeek
Beiträge: 174
Registriert: 04.05.2016 12:01:13

Re: [Debian11] Screenfetch Syntaxfehler in Zeile 1802

Beitrag von Sandersbeek » 18.08.2021 15:58:57

MSfree hat geschrieben: ↑ zum Beitrag ↑
18.08.2021 15:43:54
Sandersbeek hat geschrieben: ↑ zum Beitrag ↑
18.08.2021 15:23:14

Code: Alles auswählen

1801: mem=$(free -b | awk 'NR==2{print $2"-"$7}')
1802: usedmem=$((mem / 1024 / 1024))
1803: totalmem=$((${mem//-*} / 1024 / 1024))
Kann mir da jemand weiter Helfen oder soll ich das einfach Ignorieren? :)
Zeile 1801 liefert nicht das, was der Autor wohl haben wollte. Bei mir kommt da die Zeichenkette

Code: Alles auswählen

4160126976-1764106240
heraus. Und da haben wir auch das störende Minuszeichen.

Wenn du die Zeile 1801 in

Code: Alles auswählen

mem=$(free -b | awk 'NR==2{print $2-$7}')
änderst, sollte es funktionieren.
Super vielen dank, hat geklappt :)

Müsste nicht eigentlich jeder den Fehler haben, Die Datei liegt ja so in den Repo's?

Gut in Deb10 hatte ich den Fehler nicht.
Mit freundlichen Grüßen
Sandersbeek

System:
- Windows 10 Pro x64 / Debian 12
- CPU: Intel Core i7-10875H @ 16x 5.1GHz
- Mainboard: Tuxedo Gaming-Notebook
- Grafikkarte: NVIDIA GeForce RTX 2070 Super Mobile
- Festplatte: 4TB SanDisk Extreme PRO SSD (Win10)
- Festplatte: 1TB Samsung SSD 970 EVO Plus M.2 NVMe SSD (Debian)
- Festplatte: 2TB Samsung SSD 970 EVO Plus M.2 NVMe SSD (Debian/home)

Benutzeravatar
hikaru
Moderator
Beiträge: 13585
Registriert: 09.04.2008 12:48:59

Re: [gelöst][Debian11] Screenfetch Syntaxfehler in Zeile 1802

Beitrag von hikaru » 18.08.2021 16:03:21

Sandersbeek hat geschrieben: ↑ zum Beitrag ↑
18.08.2021 15:58:57
Müsste nicht eigentlich jeder den Fehler haben, Die Datei liegt ja so in den Repo's?
Ja, jeder ab Bullseye müsste das Problem haben.
In Sid sieht die Zeile übrigens so aus:

Code: Alles auswählen

mem=$(free -b | awk -F ':' 'NR==2{print $2}' | awk '{print $1"-"$6}')
D.h., sie wurde überarbeitet, aber das Problem fiel dabei nicht auf.

Mach einen Bugreport auf!

Benutzeravatar
Sandersbeek
Beiträge: 174
Registriert: 04.05.2016 12:01:13

Re: [gelöst][Debian11] Screenfetch Syntaxfehler in Zeile 1802

Beitrag von Sandersbeek » 18.08.2021 17:00:32

hikaru hat geschrieben: ↑ zum Beitrag ↑
18.08.2021 16:03:21
Sandersbeek hat geschrieben: ↑ zum Beitrag ↑
18.08.2021 15:58:57
Müsste nicht eigentlich jeder den Fehler haben, Die Datei liegt ja so in den Repo's?
Ja, jeder ab Bullseye müsste das Problem haben.
In Sid sieht die Zeile übrigens so aus:

Code: Alles auswählen

mem=$(free -b | awk -F ':' 'NR==2{print $2}' | awk '{print $1"-"$6}')
D.h., sie wurde überarbeitet, aber das Problem fiel dabei nicht auf.

Mach einen Bugreport auf!
bugreport ist raus, schade dass das Tool nur auf Englisch ist. Musste mich erstmal durch Frickeln :D
Mit freundlichen Grüßen
Sandersbeek

System:
- Windows 10 Pro x64 / Debian 12
- CPU: Intel Core i7-10875H @ 16x 5.1GHz
- Mainboard: Tuxedo Gaming-Notebook
- Grafikkarte: NVIDIA GeForce RTX 2070 Super Mobile
- Festplatte: 4TB SanDisk Extreme PRO SSD (Win10)
- Festplatte: 1TB Samsung SSD 970 EVO Plus M.2 NVMe SSD (Debian)
- Festplatte: 2TB Samsung SSD 970 EVO Plus M.2 NVMe SSD (Debian/home)

Huo
Beiträge: 614
Registriert: 26.11.2017 14:03:31
Wohnort: Freiburg

Re: [gelöst][Debian11] Screenfetch Syntaxfehler in Zeile 1802

Beitrag von Huo » 18.08.2021 17:37:47

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

Code: Alles auswählen

mem=$(free -b | awk 'NR==2{print $2"-"$7}')
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.

Antworten