[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Hilfe bei kleinem Script



On 24.09.2010 16:31, Ben Hartmann wrote:
Hallo,

On 09/24/2010 03:23 PM, Jochen van Geldern wrote:
Alexander Hintzer schrieb:
"true" und "false" sind an sich kleine Programme (wieder was entdeckt
:-)) welche nur einen entsprechenden Status-code erzeugen. Darum
funktioniert

     if $TEST;...

Und was passiert, wenn durch ein Fehler etwas anderes als "true" oder
"false" in der Variable $TEST steht??
Dann passiert nämlich etwas Unerwartetes.
Kann sogar ein Sicherheitslücke werden.

Was aber nicht heisst, dass die "verkuerzte" Form grundsaetzlich nicht
benutzt werden sollte. Man muss halt sicherstellen, dass die Variable
auch unter allen Umstaenden die richtigen Werte besitzt.
Aber wie schon vorher gesagt: Ich wuerde die "ausfuehrliche" Variante
bevorzugen, damit der Code einfacher zu lesen ist (und damit der
genannte Fall eines unerwarteten Var-Inhalts nicht zum Verhaengnis
werden kann... ;-) ).


[...]

Um die Fehlerabfrage zu ergaenzen:

if [ "$TEST" = "true" ]; then
	echo "true"
elif [ "$TEST" = "false" ]; then
	echo "false"
else
	echo "error"
fi

Oder:

case "$TEST" in
	true) some_cmd ;;
	false) some_other_cmd ;;
	*) error_msg
esac


Reply to: