Parameter zählen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von bootsector, 10.10.2012.

  1. #1 bootsector, 10.10.2012
    bootsector

    bootsector Grünschnabel

    Dabei seit:
    10.10.2012
    Beiträge:
    2
    Zustimmungen:
    0
    Hi @ all!
    Ich bin absoluter Shell-Neuling und steh gleich vor einem schier unlösbar scheinenden Problem:

    ich rufe in Script mit unbestimmt vielen parametern auf.
    das einzige, was dieses Script machen soll, ist mir die letzten beiden Parameter wieder ausspucken.
    Dabei soll auf shift verzichtet werden.

    Nun versuche ich einen Weg zu finden, wie ich den Positionsnummern der übergebenen Parametern ($1...$n) keinen festen Wert, sondern einen veränderlichen zuweisen kann
    also:

    x=$(($#-1))

    echo $'$x' #wobei '$x' eben die Positionsnummer des Vorletzten Parameters sein soll


    in meinem Kopf funktioniert das, das sieht aber die shell nicht ein...

    Kann mir jemand helfen bitte? danke im Voraus
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 tgruene, 10.10.2012
    Zuletzt bearbeitet: 10.10.2012
    tgruene

    tgruene Routinier

    Dabei seit:
    02.02.2012
    Beiträge:
    418
    Zustimmungen:
    0
    Ueber ein Array vielleicht?
    Code:
     #> cat test.sh
    #!/bin/bash
    NUM=$(($#-1))
    LAST=$#
    echo "$NUM, $LAST"
    # echo $$VORLETZTER
    echo ${@:$NUM:$LAST}
    #> ./test.sh a b c d
    3, 4
    c d
    
     
  4. #3 Spröde, 10.10.2012
    Spröde

    Spröde Alter Sack

    Dabei seit:
    22.01.2012
    Beiträge:
    173
    Zustimmungen:
    0
    Code:
    x=$(($#-1))
    echo ${!x}
     
  5. #4 bootsector, 11.10.2012
    Zuletzt bearbeitet: 11.10.2012
    bootsector

    bootsector Grünschnabel

    Dabei seit:
    10.10.2012
    Beiträge:
    2
    Zustimmungen:
    0
    Vielen Dank, das hat geholfen!

    edit: bei der Lösung von trguene wird mir bei der Ausgabe nur ein Parameter angezeigt... is da vielleicht ein Schreibfehler drin?
     
  6. #5 Spröde, 11.10.2012
    Spröde

    Spröde Alter Sack

    Dabei seit:
    22.01.2012
    Beiträge:
    173
    Zustimmungen:
    0
    Kompliziertere Mehrfach-Substitutionen können übrigens mit dem Builtin "eval" aufgelöst werden. In Deinem Beispiel wäre das:
    Code:
    eval echo \$$x
     
  7. #6 Spröde, 11.10.2012
    Spröde

    Spröde Alter Sack

    Dabei seit:
    22.01.2012
    Beiträge:
    173
    Zustimmungen:
    0
    tgruenes Lösung funktioniert bei mir einwandfrei.

    Schneller testbar, aber das Gleiche:
    Code:
    echo ${@:$(($#-1)):$#}
    
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Parameter zählen

Die Seite wird geladen...

Parameter zählen - Ähnliche Themen

  1. parameter zählen und jeden einer variable zuordnen

    parameter zählen und jeden einer variable zuordnen: hallo shell-freunde. ich befasse mich nur in meiner freizeit mit shellscripten, stehe aber nun vor einem problem, bei dessen lösung ich ein wenig...
  2. Programm start mit null oder einem parameter und ein paar zahlen

    Programm start mit null oder einem parameter und ein paar zahlen: hi mein problem denke für euch nen kleines für mich ein großes bin dabei C zu lernen und schreibe ein programm was mit ein paar parametern...
  3. [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

    [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter: Hallo zusammen, ich bin an einem Punkt angekommen, wo ich nicht mehr weiter komme und hoffe ihr könnt mir weiter helfen. Anbei ein Ausschnitt aus...
  4. Parameternutzung in Funktionen

    Parameternutzung in Funktionen: Hallo, vielleicht hat jemand eine Idee. Es sollen UNIX-Kommandos aus einer Funktion heraus aufgerufen werden, die Optionen werden mit...
  5. UseFBDev-parameter bei der xorg.conf

    UseFBDev-parameter bei der xorg.conf: hallo zusammen ich frage mich gerade, was der parameter "UseFBDev" genau bedeutet? tönt irgendwie selbsterklärend, ist es aber scheinbar nicht......