Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Pfade mit Parametern an eigenes Skript übergeben

  1. #1
    Registrierter Benutzer
    Registriert seit
    19.06.2003
    Beiträge
    27

    Question Pfade mit Parametern an eigenes Skript übergeben

    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

  2. #2
    Registrierter Benutzer Avatar von pitu
    Registriert seit
    07.06.2002
    Ort
    Nürnberg
    Beiträge
    142
    man bash

    Suche nach "getopts\ optstring"

    Wenn du beispiele brauchst, kann ich dir morgen posten.

    gruss,
    pitu
    11 Fehler in Windows, 88 Loesungen, 0 funktionieren.

    Dieser Beitrag steht unter der GNU Free Documentation License.

  3. #3
    Registrierter Benutzer
    Registriert seit
    19.06.2003
    Beiträge
    27

    Wink Beispiele

    Danke für die Antwort

    Ich könnte schon ein paar Beispiele brauchen

    Ruga

  4. #4
    Registrierter Benutzer Avatar von pitu
    Registriert seit
    07.06.2002
    Ort
    Nürnberg
    Beiträge
    142
    PHP-Code:
    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
    11 Fehler in Windows, 88 Loesungen, 0 funktionieren.

    Dieser Beitrag steht unter der GNU Free Documentation License.

  5. #5
    Registrierter Benutzer
    Registriert seit
    19.06.2003
    Beiträge
    27

    Ok; Default-Wert bei keinen Angaben

    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

  6. #6
    Registrierter Benutzer Avatar von pitu
    Registriert seit
    07.06.2002
    Ort
    Nürnberg
    Beiträge
    142
    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
    11 Fehler in Windows, 88 Loesungen, 0 funktionieren.

    Dieser Beitrag steht unter der GNU Free Documentation License.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •