Anzeige:
Ergebnis 1 bis 3 von 3

Thema: [Bash] Wie kombiniert man diese zwei Arrays?

  1. #1
    Registrierter Benutzer
    Registriert seit
    07.08.2006
    Beiträge
    11

    Question [Bash] Wie kombiniert man diese zwei Arrays?

    Hallo!

    Ich habe zwei Arrays in meinem Skript und bis zu einem gewissen Punkt sind die auch sehr hilfreich. Das erste enthält Namen von Variablen, das zweite enthält Optionen:

    Code:
    array[0]=THREADS  OPTION[0]=4
    array[1]=COLOR    OPTION[1]=GREEN
    array[2]=BOLDFACE OPTION[2]=YES
    ...               ...
    An einem gewissen Punkt möchte ich jedoch zu folgendem übergehen:

    Code:
    THREADS=4
    COLOR=GREEN
    BOLDFACE=YES
    ...
    
    $ echo $COLOR
    GREEN
    Hat jemand eine Idee wie man dorthin kommt, ohne eval zu benutzen (${!VAR} ist OK)?

    Gruß!
    Geändert von micmac (28-08-2008 um 19:23 Uhr)

  2. #2
    Registrierter Benutzer Avatar von BLUESCREEN3D
    Registriert seit
    08.11.2002
    Beiträge
    665
    Zitat Zitat von micmac Beitrag anzeigen
    Hat jemand eine Idee wie man dorthin kommt, ohne eval zu benutzen (${!VAR} ist OK)?
    Das geht nicht ohne eval und ${!var} bringt dir hier auch nichts, weil die Variablen ja noch nicht existieren.

    Code:
    for ((i = 0; i < ${#array[*]}; i++)); do
    	eval ${array[$i]}=\${OPTION[\$i]}
    done

  3. #3
    Registrierter Benutzer
    Registriert seit
    07.08.2006
    Beiträge
    11
    Habe doch noch einen Weg gefunden:

    Code:
    #!/bin/bash
    
    array[0]=THREADS
    array[1]=COLOR
    array[2]=BOLDFACE
    
    OPTION[0]=4
    OPTION[1]=GREEN
    OPTION[2]=YES
    
    for i in 0 1 2; do
            declare ${array[i]}=${OPTION[i]}
    done
    
    echo \$COLOR = $COLOR
    echo \$THREADS = $THREADS
    echo \$BOLDFACE = $BOLDFACE
    
    exit

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •