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