Seite 1 von 1

shell skript 3 dimensionale datenstruktur

Verfasst: 18.01.2010, 19:04
von saftig
Hallo,

ich moechte eine 3 dimensionale Datenstruktur in einem Shell skript nutzen.
3 dimensional bedeutet hier, dass ich 3 Eingaben (a,b,c) habe. Auf diese Eingabe hin, gebe ich dann 2 Werte (x,y) wieder aus.

Bisher mache ich das so:

Code: Alles auswählen

case "$a" in
2)
    case "$b" in
    DE)
        case "$c" in
        STANDARD)
            x=71
            y=30
            ;;
        HIGH) 
            x=72
            y=30
            ;;
        *) #very high
            x=73
            y=30
            ;;
	    esac
        ;;
    *) #EN
...
Die Syntax ist sehr unuebersichtlich und nur schwer erweiterbar.
Die Loesung sollte moeglichst portabel sein und nicht von einer bestimmten Version von bash abhaengen. Weiterhin waere kompakter, uebersichtlicher Code schoen. Performance spielt keine Rolle.
Sollte es keine schoene Loesung in bash geben, ist Perl auch OK.

Danke

Verfasst: 18.01.2010, 21:53
von onkelcolo
Kannst du in der bash vergessen. bash-Arrays akzeptieren nur ganzzahlige, positive Indizes, und Hashmaps gibt es ueberhaupt gar keine. Vielleicht koenntest du mit 3 parallel zu verwaltenden Arrays durchkommen, deren Werte nach einem bestimmten Schema ein garantiert eindeutiges Komposit als (quasi) "Combined Primary Key" fuer den Lookup in einem vierten Array, in dem du die tatsaechlichen Werte-Tupel ablegst, ergeben - aber das ist wohl schon fortgeschritten haesslich. :D

Verfasst: 18.01.2010, 23:33
von NoST
joa, würde auch sagen Liste(von Listen(von Listen())) und ne zweite struktur zur zuordnung 'High'-->(0,0,1)