Bestimmten Übergabeparameter lesen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von AchtungAnfänger, 11.10.2006.

  1. #1 AchtungAnfänger, 11.10.2006
    AchtungAnfänger

    AchtungAnfänger Grünschnabel

    Dabei seit:
    11.10.2006
    Beiträge:
    8
    Zustimmungen:
    0
    Hallo,

    über folgende for-Schleife möchte ich den auf Parameter "-s" folgenden nächsten Parameter lesen. Also: script.sh ... -s tataaa ... führt dann im Ergebnis dazu, dass SUFFIX "tataa" zugewiesen wurde.

    Mein kläglicher Versuch:
    Code:
    for i in $@; do
      case "$i" in
        "-s")
            eval SUFFIX=\$$(($i+1))
    	echo $SUFFIX
            ;;
      esac
    done
    Kann mir da einer helfen?

    Danke,
    Hubert
     
  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. Lumpi

    Lumpi Haudegen

    Dabei seit:
    14.06.2006
    Beiträge:
    663
    Zustimmungen:
    0
    Ort:
    Dessau
    Hallo,

    Verstehe ich dich falsch oder willst du folgendes Prinzip
    als "test" speichern, chmod +x drauf, mit
    test Lumpi starten
    Ausgabe ist dann Hallo Lumpi

    Gruß Lumpi
     
  4. #3 AchtungAnfänger, 11.10.2006
    AchtungAnfänger

    AchtungAnfänger Grünschnabel

    Dabei seit:
    11.10.2006
    Beiträge:
    8
    Zustimmungen:
    0
    Hallo Lumpi,

    danke für Deine Antwort.

    In meinem Fall werden viele Parameter ohne bestimmte Reihenfolge paarweise übergeben. Ein Paar besteht aus der Erkennungszeichenfolge (z.B. -s) und einer weiteren Wertezeichenfolge (z.B. Lumpi).

    Wie gezeigt, frage ich die Parameter in einer Schleife ab. Wenn ich an der Stelle bin an der ein "-s" erkannt worden ist, möchte ich einfach nur die anschliessende Wertezeichenfolge, also "Lumpi", auslesen. Ich dachte. dass man das einfach durch die Erhöhung der Indexierung um 1 hinbekommt?!

    Hoffe ich habe mich nun verstädlicher ausgedrückt.

    Danke,
    Hubert
     
  5. #4 Lumpi, 11.10.2006
    Zuletzt bearbeitet: 11.10.2006
    Lumpi

    Lumpi Haudegen

    Dabei seit:
    14.06.2006
    Beiträge:
    663
    Zustimmungen:
    0
    Ort:
    Dessau
    Hallo,

    Ich hoffe dich verstanden zu haben.... ;)
    Dazu musst du erst den Parameter "-s" identifizieren und dann den Folgenden..
    IMHO werden die Parameter aber immer als "$1", "$2" etc. "eingelesen".
    Auch verwendest du in deinem Script nur bestimmte Variablen mit denen du arbeitest.
    Daher musst du prüfen ob einer der Übergabeparameter
    (bis 99 sind IMHO möglich) deinen Variablen entspricht.

    [EDIT] theoretisch ausgedrückt:
    Prüfe, ob der Parameter $1 = "-s" ist
    wenn ja, verwende Parameter $2
    wenn nicht, prüfe Parameter $2
    und so weiter...
    Das ist IMHO mit einer for-Schleife realisierbar ...
    Aber je mehr "-x" Parameter du verwendest
    um so mehr Prüfungen sind notwendig[/EDIT]

    Wozu benötigst du das Ganze?
    Hast du mal einen quellcode, wofür du das brauchst?
    Dann kann ich mir ein besseres Bild
    von deinem Vorhaben machen.

    Gruß Lumpi
     
  6. #5 Wolfgang, 11.10.2006
    Zuletzt bearbeitet: 11.10.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Was du suchst ist getopts
    Lies dir am Besten mal das (etwas runterscrollen) durch.

    Wenn du dann noch Fragen dazu hast, stell sie. ;)

    HTH
    Gruß Wolfgang
    edit
    Ach noch einen wichtigen Hinweis:
    Ein eval mit einer unbekannten Eingabegröße ist eine ganz schlechte Idee, und kann zum Tod deines Systems führen.
    Was, wenn dir jemand eine Funktion unterjubelt, die alles löscht?
     
  7. #6 AchtungAnfänger, 11.10.2006
    AchtungAnfänger

    AchtungAnfänger Grünschnabel

    Dabei seit:
    11.10.2006
    Beiträge:
    8
    Zustimmungen:
    0
    Hallo Wolfgang,

    super, der Abschnitt "Ohne Verwendung von getopts" ist genau das was ich brauche.

    Vielen Dank!
     
  8. Anzeige

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

Bestimmten Übergabeparameter lesen

Die Seite wird geladen...

Bestimmten Übergabeparameter lesen - Ähnliche Themen

  1. Wie kann ich x Zeichen hinter einem bestimmten Wort ausgeben ?

    Wie kann ich x Zeichen hinter einem bestimmten Wort ausgeben ?: In mehreren Dateien ist immer mehrfach ein bestimmtes Wort enthalten, gefolgt von einem "=". Ich möchte mir die dahinter folgenden 10 Zeichen...
  2. Zeichen an Zeilenanfang für bestimmten Zeilenbereich einfügen

    Zeichen an Zeilenanfang für bestimmten Zeilenbereich einfügen: Hallo, ich würde gerne in einem Textdokument, z.B. von Zeile 10 - 18, an den Zeilenanfang ein # einfügen. Habe mir schon diverse Seiten zu SED...
  3. SSH Login nur mit einer bestimmten IP die in einer Textdatei gespeichert wird

    SSH Login nur mit einer bestimmten IP die in einer Textdatei gespeichert wird: Hallo Ich bin andauernd Opfer einer Brute Force Attacke. Die IPs die fehlerhafte Logins produzieren werden nach dem 3ten Versuch gesperrt. Aber...
  4. String einer bestimmten Zeile durchsuchen

    String einer bestimmten Zeile durchsuchen: Hallo, wie kann ich den eine bestimmte Zeile einer Textdatei zerlegen und daraus ein Stück entnehmen? Ich suche nach der Zeile in der "model...
  5. Dateien ab einer bestimmten Zeile löschen

    Dateien ab einer bestimmten Zeile löschen: Hallo, ich habe ein Skript geschrieben, welches mir mehrere Dateien in eine einzige Datei zusammenführt. Die einzelnen Dateien enthalten aber...