array
From String to Array of Strings in Bash
Definition eines String:
STRING="A"
Definition eines Array:
STRING[0]="A" STRING[1]="B"
oder
STRING="A" STRING[1]="B"
Das heißt, nur mit STRING=“A“ kann noch nicht unterschieden werden, ob es nur ein String ist, oder ein Array. D.h. man kann eine bestehende Definition einfach weiterverwenden. Und auch, diese bei Bedarf einfach um ein zweites Feld erweitern.
Wie aber muss der Code aussehen, damit er von Haus aus mit der Erweiterung umgehen kann?
Feststellen der Anzahl der Elemente im Array
${#STRING[*]}
COUNT=0 while [[ ${COUNT} -lt ${#STRING[*]} ]]; do echo ${STRING[$COUNT]}; COUNT=$((COUNT+1)); done
Output für
unset STRING
(kein Output)
Output für
STRING="a" a
Output für
STRING="a" STRING[1]="b" a b
Voraussetzungen: Elemente im Array von 0 weg zählend durchnummerieren. Das erleichtert das durchlaufen einer Zählschleife ungemein!
Empty Array in Powershell
Ein leeres Array braucht man z.B. damit eine Schleife die auf das Array zugreift gar nicht erst durchläuft.
Initialisiert wird es mit
$array = @()
Ein Array allgemein definieren
$array="wert1","wert2","wert3"
Die Schleife dazu sieht so aus
foreach ($element in $array) { print ("$element"); }
Bash Array
Nur ein Beispiel, wie man ein Array auf der Bash benutzen kann.
Als erstes die Definition von zwei Arrays:
XX=("x1" "x2") XY=("y1" "y2")
Dann das Anwendungsbeispiel, wichtig vor allem, dass die Elemente gezählt werden:
for (( i = 0; i < ${#XX[@]}; i++ )) do echo "${XX[$i]} ${XY[$i]}" done
Dann das Anwendungsbeispiel, wichtig vor allem, dass die Elemente gezählt werden:
x1 y1 x2 y2