1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Anfängerfrage

Dieses Thema im Forum "Unix & Terminal" wurde erstellt von Frankplanlos, 20.05.08.

  1. Frankplanlos

    Frankplanlos Stechapfel

    Dabei seit:
    21.04.07
    Beiträge:
    157
    Hallo Forum,
    ich lerne gerade ein wenig wie die Shell programmiert wird. Zumindest fangen wir in der FH damit an. Dort benutzen wir Solaris als BS, ich möchte natürlich auf meinem Mac üben und stosse jetzt schon auf Probleme.

    Code:
     index='expr $index + 1'
     echo $index
    ich würde gerne die Zählvariable ausgeben, jedoch geht das nicht. Der Code befindet sich auch in einer Schleife.

    Wo ist mein Fehler?
    Gruß

    Frank
     
  2. Frankplanlos

    Frankplanlos Stechapfel

    Dabei seit:
    21.04.07
    Beiträge:
    157
    Ich stelle den ganzen Code rein. Beim Aufruf übergebe ich noch ein paar Argumente.
    Gruß
    Frank
     
  3. tfc

    tfc Ontario

    Dabei seit:
    21.07.07
    Beiträge:
    348
    Probier lieber anstatt ' ' bei einemeinen Ausdruck der interpretiert werden soll die anderen Hochkommata. Die, die man auch bei Akzenten setzt: ` ` oder $( )
     
  4. DukeNuke2

    DukeNuke2 Wagnerapfel

    Dabei seit:
    17.01.06
    Beiträge:
    1.559
    $() wäre die posix konforme variante... in welcher shell arbeitet ihr denn? man sollte darauf achten das man die benutze shell mit angibt, da sich der syntax teilweise deutlich unterscheidet!
     
  5. Frankplanlos

    Frankplanlos Stechapfel

    Dabei seit:
    21.04.07
    Beiträge:
    157
    Danke für die Antwort, hatte das zähneknirschend dann doch noch rausgefunden.
    Beider nächsten Frage schreibe ich dann auch mehr Infos dazu.
    Gruß

    Frank
     
  6. Rastafari

    Rastafari Golden Noble

    Dabei seit:
    10.03.05
    Beiträge:
    17.898
    In der Syntax. Du hast mit den einfachen Hochkommata eine literale Zeichenkette als Textvariable definiert. Wenn du das schon so umständlich lösen willst, hättest du die "Backticks" verwenden müssen. Also so:
    Code:
    index=`expr $index + 1`
    Beachte den Unterschied zwischen den Zeichen: ' und `
    Das eine führt zur literalen Übernahme einer Zeichenkette als String, das andere führt zur Befehlssubstitution.

    Arithmetische Ausdrücke sehen anders aus. Versuch das:
    Code:
    index=$((index+1))
    echo $index
    ...oder die verkürzte Variante davon für den Alltagsgebrauch...
    Code:
    ((index++))
    echo $index
     

Diese Seite empfehlen