Auf Argumente pruefen schlaegt fehl

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von z00k, 17.06.2008.

  1. #1 z00k, 17.06.2008
    Zuletzt bearbeitet: 17.06.2008
    z00k

    z00k I love my slack! Do u?

    Dabei seit:
    24.01.2005
    Beiträge:
    302
    Zustimmungen:
    0
    Ort:
    earth.getLocation("z00k");
    Howdy,

    brauche (wieder mal) die Hilfe unserer Script-Gurus hier :D

    Habe nen bash script geschrieben, welches direkt zu Beginn eine Funktion ausfuehren soll, um auf uebergebene Argumente zu pruefen.

    Quasi so:

    Code:
    function checkarg {
      if test -z "$1"
      then
        updatecvs ; exit
      fi
    }
    checkarg
    
    ...
    Folgendes Verhalten tritt ein, wenn ich das Script laufen lasse:

    Uebergebe ich kein Argument, wird die Funktion 'updatecvs' ausgefuehrt und steigt danach aus. Also genau mein gewuenschtes Verhalten.
    Wenn ich nun aber ein Argument uebergebe, wird trotzdem der 'then' Block ausgefuehrt (Funktion 'updatecvs' und anschliessedes 'exit').

    Hat jemand nen Tipp fuer mich woran das liegen koennte?

    EDIT:
    Habe den Code einfach mal grade ohne den 'function' Block vor den Code geschoben und komme somit zu meinem gewuenschten Verhalten. Doch meine Frage bleibt ja quasi bestehen: Wieso funktioniert der Gleiche Code (in einen 'function' Block gepackt) nicht?
    Bin eigentlich JAVA Entwickler und moechte deswegen am liebsten alles natuerlich ein bisl OO anordnen, soweit es geht natuerlich ;-)

    EDIT2:
    OK, bin selber drauf gekommen. Wenn ich der Funktion 'checkarg' mit dem Argument $1 aufrufe, funktionierts auch. Also scheinen $1, $2, ... wohl keine globalen Variablen zu sein ;-)

    Danke im Vorraus!

    gReetZ
     
  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. #2 floyd62, 17.06.2008
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    Wenn du schon 'ne Funktion definierst, die die Argumente prüft, mit denen du dein Skript aufgerufen hast, dann solltest du die beim Aufruf dieser Funktion auch an die mit übergeben. Also statt
    Code:
    checkargs
    einfach mal
    Code:
    checkargs "$@"
    versuchen

    ;-)
     
Thema:

Auf Argumente pruefen schlaegt fehl

Die Seite wird geladen...

Auf Argumente pruefen schlaegt fehl - Ähnliche Themen

  1. Metazeichen auf mehrere Argumente anweden

    Metazeichen auf mehrere Argumente anweden: Hey ! Ich habe noch eine Frage ;) Und zwar geht es um den Formalismus. Ich möchte mit dem Stream-Editor etwas ersetzen. Nun möchte ich aber...
  2. Fehlende Argumente bei getopts

    Fehlende Argumente bei getopts: Hi, ich mmuss beim Programmaufruf mehrere Parameter angeben. Mit getops überprüfe ich die Argumente, die zwingend sind. Wenn ich ein Argument...
  3. befehle mit argumenten in der schleife ansführen

    befehle mit argumenten in der schleife ansführen: Hi Leute, ich benutze bash. ich will das gleiche mit verschiedenen Argumenten laufen lassen, die ich in einer Datei habe. der Einfachheit...
  4. Solaris 10 - Run Window fragt nach Optionen und Argumenten

    Solaris 10 - Run Window fragt nach Optionen und Argumenten: Hallo, nach Neuinstallation von Solaris 10 auf x86 Platform zeigt sich ein kleines, aber nerviges Problem. Jedes Skript, das eine Shell bzw....
  5. Wie Programmstart-Argumente in Assembler auslesen?

    Wie Programmstart-Argumente in Assembler auslesen?: hi, ich bin grade dabei Asembler zu lernen, und hätte da mal eine Frage. Wie kann ich die Argumente, welche beim Programmstart unter Linux...