Hilfe f. Script | Array und Rechnen

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
6.048
Punkte für Reaktionen
1.838
Punkte
254
Hallo,

ich bräuchte mal 'nen Stupser oder ein gebratenes Täubchen. :)

Das Script liest alle Container von Docker ein, dazu einen weiteren Wert und legt diese in einem Array ab.

Beispiel:
Code:
ContainernameA;3 ContainernameB;7 ContainernameC;2 ContainernameD;17

Das Auslesen wiederholt sich z.B. alle 10 Sekunden. Nun sollen die neuen Werte immer jeweils zu den alten Werten addiert werden.
Irgendwie fehlt mir der richtige Ansatz.

Zum Aufbau: Das Ablegen der Werte wäre änderbar, wenn das hilfreich ist. Im Moment ist es Containername;Wert. Auch muss es zwingend kein Array sein.
 

Hellraiser123

Benutzer
Sehr erfahren
Mitglied seit
31. Jul 2024
Beiträge
717
Punkte für Reaktionen
396
Punkte
139
Was genau bräuchtest du denn?
Das splitten ist hier ganz gut beschrieben https://www.geeksforgeeks.org/shell-script-to-split-a-string/ und dann musst du es ja nur noch addieren...

Ich weiß ja nicht was du vor hast und was du verwendest, aber eine Datenstruktur würde es einfacher machen. Ich würde entweder mit jq oder node ein JSON generieren. Dann kannst du es viel einfacher durchlaufen und musst nicht mit Strings arbeiten
 
  • Like
Reaktionen: framp

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
942
Punkte für Reaktionen
84
Punkte
54
Bash:
#!/bin/bash

declare -A arrayOld=( [ContainernameA]=0 [ContainernameB]=0 [ContainernameC]=0 [ContainernameD]=0 )
declare -A arrayNew=( [ContainernameA]=3 [ContainernameB]=7 [ContainernameC]=2 [ContainernameD]=17 )

for e in "${!arrayOld[@]}"; do

    (( arrayOld[$e] += ${arrayNew[$e]} ))

done

for e in "${!arrayOld[@]}"; do
    echo "-> $e: ${arrayOld[$e]}"
done
 

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
942
Punkte für Reaktionen
84
Punkte
54
ich bräuchte mal 'nen Stupser
Ich auch :) Die Infos was Input ist und wo der Output landet sind duerftig :unsure:

Klar kann man auch Deinen String entsprechend splitten per cut oder jq prozessieren - je nachdem wie der Input aussieht.Dazu braucht es etwas mehr Info als einen Stupser ;)
 
  • Like
Reaktionen: peterhoffmann

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
942
Punkte für Reaktionen
84
Punkte
54
@peterhoffmann Da keine weitere Antwort kam ... d.h. mein kleiner Codeschnipsel hat Dir als Stupser gereicht? Freut mich :)
 
  • Haha
Reaktionen: peterhoffmann

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
6.048
Punkte für Reaktionen
1.838
Punkte
254
@framp
Der Codeschnipsel war gestern noch nicht da, als ich geschaut habe. Da war nur die Nachfrage nach mehr Input von dir. :unsure:🧐
Da ich heute in Ruhe gucken wollte, hatte ich das stehengelassen und wollte heute darauf eingehen.
Inzwischen hatte ich bei meinem Problem selbst einen Geistesblitz🌩️ und konnte mich selbst anstupsen. 🤪😌
Nun habe ich deinen Codeschnipsel (erst jetzt durch dein weiteres Posting) entdeckt. :oops:

Ich sage aber schon mal lieb Danke schön 🙏 für deine Mühe. Auch wenn wir irgendwie aneinander vorbeigeschrieben bzw. vorbeieditiert haben. :D;)🖖
 
  • Like
Reaktionen: framp


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat 

 
 
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten. Dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit hohem technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive Werbung und bemühen uns um eine dezente Integration.

Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.

Du kannst uns auch über unseren Kaffeautomat einen Kaffe ausgeben oder ein PUR Abo abschließen und das Forum so werbefrei nutzen.

Vielen Dank für Deine Unterstützung!