PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Pfade mit Parametern an eigenes Skript übergeben



rugaaaaa
29-06-2003, 12:40
Hallo

Ich habe folgendes Problem

Z.Zt. frägt mein Skript nach bestimmten Dateiennamen und Verzeichnisen.
Dann gebe ich diese an an im Skript werden diese Angaben irgendwelchen Variablen zugewiesen.

Jetzt möchte ich allerdings es mit Paramtern machen

also, z.B.

PRG.sh -f datei1 -t /tmp/tmp$$ -o datei2

oder PRG.sh -f datei1

wenn halt nichts angeben wird, will ich dann eine default-Variante verwenden.

Wie kann ich das machen?

Ruga

pitu
29-06-2003, 22:06
man bash

Suche nach "getopts\ optstring"

Wenn du beispiele brauchst, kann ich dir morgen posten.

gruss,
pitu

rugaaaaa
30-06-2003, 18:42
Danke für die Antwort

Ich könnte schon ein paar Beispiele brauchen

Ruga

pitu
01-07-2003, 08:21
while getopts sdvhlw:c:ni:C:u i; do
case $i in
d) set -x
EXIT=2
;;
s) OUTPUT=1;;
c) CRIT="$OPTARG";;
w) WARN="$OPTARG";;
\?) usage 1;;
h) usage 0;;
v) copyright 0;;
n) SHORT=1;;
l) longhelp 0;;
i) TIME="$OPTARG";;
C) LIST="$OPTARG";;
u) FADE="1";;
esac
done


unter "getopts" bedeutet jeder Buchstabe eine Option, jeder Buchstabe (oder Zahl) mit einem Doppelpunkt dahinter, eine Option mit einem Argument. Das Argument steht immer in der Variable OPTARG. Tja, und dann gehst du nur noch deinen "case" durch.

Der Uebersicht wegen ruftst du nur Funktionen auf oder setzt Varialen, aber du koenntest da auch deinen gesamten Code zwischenpacken.

Eventuell wird dir "usage" auffallen. Usage ist dort eine Funktion, die aine Kurzbeschreibung zurueckgibt. einmal mit "exit 0" und einmal mit "exit 1". exit 1 bzw \? ist eine sionderbedeutung und bedeutet, dass ein Wert fuer getopts gefunden wurde, den es nicht gibt. Wenn du das Script also z.B. mit -Z aufgerufen haettest.

gruss,
pitu

rugaaaaa
01-07-2003, 20:13
Ok, Danke erstmals

Dass mit den Parametern funkioniert jetzt.

Ich hätte aber noch eine andere Frage

Wie mache ich dass wenn nichts angeben wird eine Art Hilfe angezeigt wird.

Und dass wenn manche Optionen nicht angegeben werden eine default-Wert verwendet wird.

Ruga

pitu
02-07-2003, 09:44
Argh, schon wieder das leidige backslash problem.

das soll heissn, "backslasch_fragezeichen_klammerzu" und nicht nur "fragezeichen_klammerzu". damit sollte auch bei keiner angebe eine hilfe ausgegeben werden. bei mir eben mit exit 1.

gruss,
pitu