staging.inyokaproject.org

Blutiger Anfänger startet mit Bash ;)

Status: Ungelöst | Ubuntu-Version: Xubuntu 22.04 (Jammy Jellyfish)
Antworten |

Skipper_Do

(Themenstarter)

Anmeldungsdatum:
11. November 2023

Beiträge: Zähle...

@ Marc_BlackJack_Rintsch:

Ich hab mir heute mal Dein ungetestetes Script zur Brust genommen... Funktioniert genauso gut oder Schlecht wie meins (was ich ja noch lauffähig bekommen habe). Zumindest was die Ausgabe am Terminal angeht..

Wenngleich ich sagen muss das Dein Code deutlich geiler ist.. Und ich glaube auch verstanden zu haben was da passiert..

Ich bin allerdings auch noch nicht fertig mit "aufhübschen" der Ausgabe.. So wollte ich z.B. noch die % Anzeigen ($capacity & $percentage) ihrem Wert entsprechend einfärben. Das schlug allerdings fehl, da der Ausgabe des Zahlenwerts direkt ohne Leerzeichen das Prozentzeichen folgt. Somit klappen if Anweisungen mit -gt / -ge / -le oder -lt nicht, da das Prozentzeichen stört (& somit wohl als String behandelt wird?), ebenso kann das Prozentzeichen nicht durch $fieldNumber "rausgefiltert" werden, da ja kein Leerzeichen dazwischen ist..

Gibts da nen Trick für? LG

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4735

@Skipper_Do: Der ”Trick” wäre für die Vergleiche das %-Zeichen zu entfernen. Ist halt nicht wirklich ein Trick, sondern einfach sinnvolles vorgehen. 🙂

1
2
3
4
5
$ A=42%
$ echo ${A::-1}
42
$ echo ${A%%%}
42

Skipper_Do

(Themenstarter)

Anmeldungsdatum:
11. November 2023

Beiträge: 7

Könntest Du den code vielleicht noch mit Kommentaren versehen? Ich blick da gerade gar nicht durch was da passiert...

Danke LG

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4735

Was soll man da kommentieren? Das sind zwei Möglichkeiten die Zahl ohne das %-Zeichen zu bekommen. Was da genau passiert steht in der Bash-Dokumentation. Da stehen auch die anderen Möglichkeiten wie man Zeichenketten mit Bash-Mitteln bearbeiten kann.

Randbemerkung: Ich würde die Zeit lieber in eine moderne, ordentliche Programmiersprache investieren. Perl, Python, Ruby, oder was in der Art. Halt irgendetwas wo es vernünftige Datenstrukturen gibt, und mit regelmässigerer und weniger kryptischer Syntax. Wo man die Ausgabe vom upower-Aufruf *einmal* in eine Datenstruktur überführen kann, die sich als Rückgabewert an den Aufrufer geben lässt.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

Marc_BlackJack_Rintsch schrieb:

Randbemerkung: Ich würde die Zeit lieber in eine moderne, ordentliche Programmiersprache investieren. Perl, Python, Ruby, oder was in der Art. Halt irgendetwas wo es vernünftige Datenstrukturen gibt, und mit regelmässigerer und weniger kryptischer Syntax.

👍 👍 👍 - allerdings würde ich eher nicht Perl nehmen, weil das einfach unnötig komplex ist. Python hat den Vorteil, weit verbreitet zu sein, Ruby hat den Vorteil Reguläre Ausdrücke als Sprachelemente zu haben und bietet sich aufgrund seiner Syntax an, domänen-spezifische Sprachen zu bauen.

Wo man die Ausgabe vom upower-Aufruf *einmal* in eine Datenstruktur überführen kann, die sich als Rückgabewert an den Aufrufer geben lässt.

Gut, man könnte die Ausgabe von upower auch hier in eine Shell-Variable packen. Aber ich stimme Dir zu.

Antworten |