PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Yes or No - Case sensitive



Zico
01.03.2005, 09:16
Hi

Im Moment schreib ich an nem kleinen Installationsscript für meine descent Games. Und dabei hab ich natürlich nen Problem bzw ne Frage.
Bei der Installation ibt es des öfteren mal Ja / Nein Abfragen, sprich:
"Möchten Sie installieren? (J/N)"

Gelöst hatte ich das bisher mit case:


read yesno
case $yesno in
"j") INSTALLATIONSSCRIPT
"n") KEIN INSTALLATIONSSCRIPT
esac

Jetzt isses natürlich so, dass das Script lediglich reagiert, wenn j oder n klein eingegeben wird.
Also habe ich mich damit beholfen, dass bei J und bei j eine Installation durchgeführt wird. Dabei habe ich am Ende natürlich 2 Scripts:


read yesno
case $yesno in
"j") INSTALLATIONSSCRIPT
"n") KEIN INSTALLATIONSSCRIPT
"J") INSTALLATIONSSCRIPT
"N") KEIN INSTALLATIONSSCRIPT
esac

Bei der größe der Installation wird das ganze dann natürlich entsprechend riesig und bei jeder Änderung muss ich quasi zwei Änderungen machen. Bin nicht so fit im Shellscripting und mir fällt keine passende Lösung ein.

Habt ihr Vorschläge?

crypt
01.03.2005, 09:23
moin...
machs lieber mit IF anstatt einer case, wenn nur true || false als ergebnis zur debatte steht...


if [ $var1=j -a $var1=J ]
then
#work
else
#no
fi


hoffe konnte soweit helfen...

-a -->logisch AND
-o -->logisch OR

Schlaubi_fi.de
01.03.2005, 11:08
Oder so:



read -p "Installieren? [j/n] " ans

case $ans in
j|J|y|Y) echo ans=ja;;
n|N) echo ans=nein;;
esac

Flex
08.03.2005, 11:42
oder du wandelst das eingelesene Zeichen zuerst in einen Kleinbuchstaben um und vergleichst es erst dann.