[Kornshell] Variableninhalt vergleichen

el.com

Lieutenant
🎅Rätsel-Elite ’25
Registriert
Okt. 2008
Beiträge
792
Moin Volk :)

für ein Kornshell Script muss ich 2 Variablen auf deren Inhalt vergleichen. Beispiel:
VARIABLE1 ist besetzt mit verschiedenen Schlüsselwörtern, z.B.

Code:
VARIABLE1="[B]abc xyz[/B]"

Die andere, VARIABLE2, enthält eine Liste mit verschiedenen Strings, z.B.

Code:
VARIABLE2="/filesystem1 /filesystem2 /filesystem[B]abc[/B] /filesystem[B]xyz[/B] /filesystemLMAA"

Was ich jetzt machen will: es soll in einer Schleife geprüft werden, ob in VARIABLE2 irgendeins der Schlüsselwörter aus VARIABLE1 enthalten ist und darauf basierend Befehle ausgeführt werden (wenn true, führe Befehl1 aus; wenn false, führe Befehl2 aus). Sollte ja eigentlich nicht zu schwer sein, nur da ich nicht der größte Crack in sowas bin, stell ich mich bei der Umsetzung gerade etwas ungeschickt an.


Any suggestions?

Gruß,

el.com
 
Hmmm... Das ginge zwar auch, aber da das ganze in eine Schleife eingebaut werden soll und die Anzahl der Schlüsselwörter recht lang ist (und noch länger werden kann), würde das im Code wahrscheinlich ein heilloses Durcheinander geben, wenn ich das jedes Mal über ein grep laufen lasse.
 
ein heilloses Durcheinander produziert nur der Programmierer, nicht grep

da ja nichts von festplatten gelesen wird, glaube ich nicht, dass es zu laufzeit-problemen kommen wird.

ansonsten hat test eine ganze reihe von möglichkeiten, mal in den manpages nachlesen.
 
Speicher die Werte am Besten als Regex ab. Dann kannst du direkt mit der Regex-Variante von grep prüfen ob eine der beiden vorkommt:
Code:
VARIABLE1="abc|xyz"
VARIABLE2="/filesystem1 /filesystem2 /filesystemabc /filesystemxyz /filesystemLMAA"
echo "$VARIABLE2" | grep -qE "$VARIABLE1"
if [ $? -eq 0 ]; then
  echo "gefunden"
fi
 
@BerniG:

Super, ungefähr so hab ich mir das vorgstellt. Habs in meinem Skript implementiert und es läuft wie ein schweizer Uhrwerk! Danke :)
 
Zurück
Oben