Kategorien

Druckansicht des Beitrags Druckansicht des Beitrags

Dash Shell Scripting – Mit Arrays arbeiten

Bei der Bourne-Shell ist es ohne Probleme möglich verschiedenste Dinge mit Arrays anzustellen. Viele interessante und lehrreiche Beispiele finden sich im Unix Bash Scripting Blog. Allerdings verwendet Ubuntu für Scripts mittlerweile die dash, die zwar nicht den Funktionsumfang der Bash bereitstellt, aber dafür dem POSIX-Standard entspricht und schneller sein soll. Leider kann man damit nicht wie von der Bash gewohnt mit Arrays arbeiten. Wie kann man sich nun behelfen? Ich wollte für mein Beispiel zwei Arrays (TAPS, ARP_IPS) so kombinieren, dass jeweils die zusammengehörigen Parameter (gleicher Index im Array) ausgegeben werden. So habe ich es hinbekommen:

#!/bin/sh
TAPS="tap0 tap1 tap2"
ARP_IPS="169.254.0.1/32 169.254.0.2/32 169.254.0.3/32"
i=0
for TAP in $TAPS; do
  j=0
  for ARP_IP in $ARP_IPS; do
    if [ $i = $j ]; then
      break
    fi
    j=$(( $j + 1 ))
  done
  echo $TAP $ARP_IP
  i=$(( $i + 1 ))
done

Als Ausgabe des Scripts erhält man folgendes:

tap0 169.254.0.1/32
tap1 169.254.0.2/32
tap2 169.254.0.3/32

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>