Bestimmten Übergabeparameter lesen

  • Ersteller AchtungAnfänger
  • Erstellt am
AchtungAnfänger

AchtungAnfänger

Grünschnabel
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
 
Hallo,

Verstehe ich dich falsch oder willst du folgendes Prinzip
#!/bin/bash
echo "Hallo $1"
als "test" speichern, chmod +x drauf, mit
test Lumpi starten
Ausgabe ist dann Hallo Lumpi

Gruß Lumpi
 
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
 
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
 
Zuletzt bearbeitet:
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?
 
Zuletzt bearbeitet:
Hallo Wolfgang,

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

Vielen Dank!
 

Ähnliche Themen

Switche abfragen über Script

Telefoninterview (Wie sich auf Bash-Shell-Fragen vorbereiten?)

HandbrakeCLI Shell Skript

Benötige Hilfe- Dateien vergleichen

continue in Schleife einbauen

Zurück
Oben