====== Array Funktionen in der Shell ======
(Vielen Dank an Axel Sander!)
# Datenelement setzen
# $1 = Array Grundname
# $2 = Position
# $3 = Wert
set_array()
{
ARRINT=$(( $2 / $MAXARR ))
ARRMOD=$(( $2 % $MAXARR ))
ARRNAME=${1}_${ARRINT}
ARRTMP="$ARRNAME[$ARRMOD]=$3"
eval $ARRTMP
}
# Datenelement lesen
# $1 = Array Grundname
# $2 = Position
get_array()
{
ARRINT=$(( $2 / $MAXARR ))
ARRMOD=$(( $2 % $MAXARR ))
ARRNAME=${1}_${ARRINT}
ARRTMP='${'"$ARRNAME[$ARRMOD]"'}'
eval print $ARRTMP
}
# Maximale Größe fuer einzelnen Array
MAXARR=4000
Einen Wert im Array GV1ARR speichern:
POS1=20
WERT1=123
set_array GV1ARR $POS1 $WERT1
Den Wert lesen:
TMP_WERT1=`get_array GV1ARR $POS1`
echo $TMP_WERT1
123
----
Stand: 04.11.2009
EOF