Arrays

Heute soll es um das Thema Arrays im Bashscript gehen.

Ein Array ist dabei eine Art besondere Variable/Speicher, welche/r mehrere Strings beinhalten kann.
z.B. kann im Array arDateien stehen: datei1 datei2 datei3 und diese möchte man anschließend über eine For-Schleife laufen lassen.
Hinweis: Ein Array beginnt bei Index 0 !

array1.sh

#!/bin/bash

arDateien=(datei1 datei2 datei3)

for datei in ${arDateien[*]} ;do
  echo "${datei}"
done

# Ausgabe:
# --------
# datei1
# datei2
# datei3

echo ${arDateien[1]}
# Ausgabe: datei2

echo ${arDateien[*]}
# Ausgabe: datei1 datei2 datei3



Ich nutze Arrays gern zur gesammelten Dateiabfrage (z.B. zur Überprüfung, ob alle Dateien erzeugt wurden)

array2.sh

#!/bin/bash

home="/home/julien/"

arDateienRW=("${home}datei1" "${home}datei2" "${home}datei3")

for datei in arDateienRW[*]; do
  echo ${datei}
  touch ${datei}

  if [ ! -r ${datei} ] || [ ! -w ${datei} ]; then
    echo "Fehler bei Zugriffsrechten der Datei: \"${datei}\""
    exit 1
  fi

done


Nun noch einige nützliche Tipps zu Arrays:

tipps.sh

# listet alle Werte auf
$ echo "${arDateien[*]}"

# listet ebenfalls alle Werte auf
$ echo "${arDateien[@]}}"

# gibt der Anzahl der Elemente aus
$ echo "${#arDateien[*]}"

# gibt die Länge des entsprechenden Eintrags zurück
$ echo "${#arDateien[1]}"

# löschen eines gesamten Arrays
$ unset ${arDateien[*]}

# löschen eines Eintrags
$ unset ${arDateien[1]}

# kopieren eines gesamten Arrays
$ arDateien_copy=(${arDateien[*]})

# Arrayindex belegen
$ arDateien[50]="Inhalt"

# Schreibschutz verwenden
typeset -r arDateien

Alle drei Scripte gibt es wie gewohnt hier zum „Download“.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.