Hallo,
ich bin noch relativ neu in dem Thema Shell Programmierung und habe ein paar Schwierigkeiten:
Ich möchte mittels eines Skriptes die auf der Kommandozeile eingegebenen Parameter in einem Array speichern und anschließend auf diverse Kriterien prüfen, ehe ich sie weiter nutze.
Bislang habe ich folgende Zeilen test.sh geschrieben:
1 2 3 4 5 6 7 8 9 10 11 | #!/bin/bash array=($@) for ((i=0; i<$#; i++)) do echo "Argument $i ist ${array[$i]}" done |
Nun habe ich, wenn ich ./test.sh --hallo ich --bin ein --test ausführe:
Argument 0 ist --hallo Argument 1 ist ich Argument 2 ist --bin Argument 3 ist ein Argument 4 ist --test
Da ich Bashversion 4 und höher habe, ist es möglich ein assoziatives Array zu erzeugen.
Ich muss die übergebenen Argumente auf folgenden String testen: "–". Wenn dieser String existiert, soll das Programm "–" abschneiden und als Key-Variable speichern. Wenn dieser String nicht existiert, soll das Programm es als Value-Variable speichern.
Anschließend sollen diese Variablen in das assoziative Array folgender Form gespeichert werden:
COMMANDS[$key]=$value
Ist das möglich? Ich komme irgendwie gerade nicht weiter... Bin wie gesagt noch neu und hab noch ein paar Schwierigkeiten mit der Syntax, da ich es gewohnt bin z.B. <> ; < ; > zu arbeiten.
Vielen Dank euch im Voraus.
Freundliche Grüße