Auf Argumente pruefen schlaegt fehl

z00k

z00k

I love my slack! Do u?
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
 
Zuletzt bearbeitet:
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

;-)
 

Ähnliche Themen

Variableninhalt wird nicht gespeichert

Last mit etc/passwd anzeigen lassen

Wirkliches Includieren mit KSH

Fehlende Argumente bei getopts

Auf zusaetzliches Argument pruefen

Zurück
Oben