Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Leichte bash-Frage

  1. #1
    Registrierter Benutzer
    Registriert seit
    04.12.2001
    Beiträge
    8

    Question Leichte bash-Frage

    Hi Leute,

    ich kenne mich nur seehr wenig mit bash aus, und als ich gestern ein kleines Script schreiben wollte, bin ich auf folgendes Problem gestoßen:

    Ich habe eine Variable $a und viele Variablen namens $x_1, $x_2, $x_3 etc.
    $a enthält nun eine Zahl, die sich ändert, und abhängig von $a möchte ich den Inhalt von $x_1, $x_20 oder $x_5 usw. auslesen.
    Eben den Inhalt der variablen x_$a.

    Aber wie geht das?
    Ich habe es mit so vielen unterschiedlichen Varianten probiert...

    echo $x_$a führt schonmal zu einem falschen Ergebnis.
    echo ${x_$a}, echo $("x_"$a) und all sowas auch.

    Ich will eben nicht als Ergebnis von echo "x_10" oder so erhalten, sondern eben das, was in $x_10 steht!

    Wie geht sowas, also wie kann ich den Inhalt von Variablen auslesen, deren Namen sich erst durch den Inhalt anderer Variablen zusammensetzt?
    - Gentoo, Kernel 2.6.2, gcc 3.3.2, KDE 3.2, reiserFS ______ Bitte besucht meine Homepage:

    www.matzeundbenni.de

  2. #2
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Hallo,

    geht es mit einem Array?

    http://www.tldp.org/LDP/abs/html/arrays.html

    Lies auch sonst mal ein bisschen den Advanced Bash Scripting Guide durch.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  3. #3
    Registrierter Benutzer Avatar von pitu
    Registriert seit
    07.06.2002
    Ort
    Nürnberg
    Beiträge
    142
    Code:
    local:~ # export a=10
    local:~ # export x_10="test"
    local:~ # export b="_$a"
    local:~ # echo $b
    _10
    local:~ # eval echo \$x$b
    test
    local:~ # export x10="test"
    local:~ # eval echo \$x$a
    test
    local:~ #
    gruss,
    pitu
    11 Fehler in Windows, 88 Loesungen, 0 funktionieren.

    Dieser Beitrag steht unter der GNU Free Documentation License.

Lesezeichen

Berechtigungen

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