Willkommen auf Planet-Liebe

diskutiere über Liebe, Sex und Leidenschaft und werde Teil einer spannenden Community! :)

jetzt registrieren

ShellScripting

Dieses Thema im Forum "Musik, Filme, Computer und andere Medien" wurde erstellt von Standbye, 7 April 2004.

  1. Standbye
    Standbye (33)
    Verbringt hier viel Zeit
    75
    91
    0
    Verheiratet
    So vielleicht kann mir hier jemand helfen .. ich KRIEG GLEICH PLACK

    folgendes Script hab ich geschrieben

    Code:
    anz_z=`ll | wc -l`
    fs=`ll | awk '{print $5}'`
    i=0
    while [ $anz_z -ge $i ] ; do
       st=`echo $fs | awk '{print $1}'`
       echo $st
       zahl=1024
       fr=`expr $st / $zahl`
       echo "$fr"
       i=`expr $i + 1`
    done
    Nun meine Frage wie zum geier krieg ichs hin, dass ich in derZeile
    Code:
     st=`echo $fs | awk '{print $1}'`
    es stehen hab, dass er da durch loopt mit der $i variablen?
    also das es dann so ca aussieht (nur das es gehn sollte)

    PHP:
     st=`echo $fs | awk '{print $$i}'`
    also in $i steht ne zahl 1 2 3 etc -> das soll vor das $ das es dann aussieht wie oben ($1) <-- beim nächsten loop $2 ... etc. jeman dplan
    ?
    ich kriegs ums verrecken net hin

    \$$i <-- is nich
    $$i <-- lala
    ${$i} <-- erst recht nicht etc
    GNAAA
     
    #1
    Standbye, 7 April 2004
  2. shabba
    Gast
    0
    sicher dass dein problem nicht schon in den single quotes liegt?

    soweit ich das noch vom shell scripting her kenne ist

    foo = "bar";

    echo $foo # bar
    echo '$foo' # $foo

    wenn's das nicht ist.....hmmm

    aber dein eigentliches prob ist ja ein anderes: dynamische variablennamen...das ist hummm...komplizierter..


    wenns nicht allzu dynamisch sein soll mach sowas wie

    for I in "$1" "$2" "$3" ; do was weiss ich; done

    ansonsten wirst du dich mit arrays anfreunden muessen

    lg

    EDIT: da faellt mir ein: du koenntest es mit eval probieren!

    d.h. von der idee her

    for i in 1 2 3
    do
    eval echo $i
    done

    nur als beispiel

    aber du kennst ja eval :smile:
     
    #2
    shabba, 7 April 2004
  3. Mr. Poldi
    Verbringt hier viel Zeit
    3.068
    121
    0
    vergeben und glücklich
    $[$i]

    ?

    Oder vielleicht

    for x in $@
    do
    // Mach irgendwas mit $x
    done
     
    #3
    Mr. Poldi, 7 April 2004
  4. TermUnitX
    Gast
    0
    Hab ich's richtig verstanden?

    Code:
     st=$(echo $fs | awk "{print $"$(echo $i)"}")
    
    Sieht elendig aus, aber ist's das, was du wolltest?
    Standardfrage: Und wieso nicht in Perl? ;-)
     
    #4
    TermUnitX, 7 April 2004

jetzt kostenlos registrieren und hier antworten