Bash Array Beispiele

letzte Änderung: 20. Dez 2014, 23:41 Veröffentlicht: 31. Okt 2013, 23:50

Inhaltsverzeichnis

 

 

 

 

 

 

 

 

X=(eins zwei drei vier fuenf sechs sieben acht neuen)

komplettes Array ausgeben (einzeilig)

host: # echo ${X[*]}
eins zwei drei vier fuenf sechs sieben acht neuen

oder

host: # echo ${X[@]}  
eins zwei drei vier fuenf sechs sieben acht neuen

komplettes Array ausgeben (pro Eintrag eine Zeile)

for (( i=0; i<${#X[@]}; i++ ))
  do
   echo "$i: ${X[$i]}"
  done

Ausgabe:

0: eins
1: zwei
2: drei
3: vier
4: fuenf
5: sechs
6: sieben
7: acht
8: neuen

Array rückwärts ausgeben

for (( i=${#X[@]}-1 ; i>=0 ; i-- ))
  do
   echo "${X[i]}"
  done

Länge eines Array-Eintrages ausgeben

host: # echo ${#X[7]}
5

Array Länge (Anzahl der Einträge) ausgeben

host: # echo ${#X[@]}       
9

gezielt Bereiche eines Arrays ausgeben

ab Index 0, 3 Elemente

host: # echo ${X[@]:0:3}  
eins zwei drei

ab Index 2, 4 Elemente

host: # echo ${X[@]:2:4}   
drei vier fuenf sechs

ab Index 3 alle

host: # echo ${X[@]:3}  
vier fuenf sechs sieben acht neuen

letztes Array-Element ausgeben

echo ${X[${#X[@]} - 1]}
host: # X=(schwupp die wupp 234)  
host: # echo ${X[*]}
schwupp die wupp 234
host: # 
host: # echo ${X[${#X[@]} - 1]}
234 

Eintrag eines Arrays beschnitten ausgeben

host: # echo ${X[6]}
sieben
host: # echo ${X[6]:0:5}
siebe
host: # echo ${X[6]:2:4}
eben
host: # echo ${X[6]:2:3}
ebe

bei Array-Ausgabe String suchen und ersetzen

Achtung: nur die Ausgabe wird ersetzt, nicht der Array-Inhalt!

host: # echo ${X[@]/sieben/zwerge}
eins zwei drei vier fuenf sechs zwerge acht neuen

Einträge an bestehendes Element anhängen

host: # X=(${X[@]} zehn elf) 
host: # echo ${X[*]}
eins zwei drei vier fuenf sechs sieben acht neuen zehn elf

Array Element löschen

host: # X=(${X[@]/fuenf/})
host: # echo ${X[@]}      
host: # eins zwei drei vier sechs sieben acht neuen zehn elf

Array Elemente addieren

host: # X=(2 3 3 2 2 2 2 2 2)
for (( i=0; i<${#X[@]}; i++ ))
  do
    ((A=$A+${X[$i]}))
  done
host: # echo $A
host: # 20