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
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
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
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
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.