[linux-l] Bash_Script von Browser. Hilfe!

Antonello Marafioti antomara at googlemail.com
Fr Mär 29 07:50:36 CET 2013


Hallo liebe Experte,

ich hoffe, jemand kann mir einen Tip geben.

Ich habe einen kleinen Bash-Script erstellt, damit mein Sohn Lateinvokabel lernt.. Der Script funktioniert prima auch wenn ich sicher bin, dass man es bestimmt besser machen könnte. Ich habe gerade mit Shell scripting angefangen.

Da dieser Script für einen 12-jährigen ist möchte ich ihn per Browser laufen lassen. Es gibt ein Punktesystem und er könnte gegen seine Schulkameraden spielen.

Kann mir jemand einen oder mehrere Tips geben, wie es geht? Ich kann noch kein Perl, Php oder Ähnliches, aber ich lerne schnell.

Danke
Antonello

Hier mein Script. Es ist für OSX optimiert.

#!/bin/bash

#chiedi il nome
echo "Ciao! Come ti chiami?"|say
read USERNAME

if [ -s ~/quiz_latino/${USERNAME}1_DAT ]; then
rm ~/quiz_latino/${USERNAME}*_DAT
fi


#istruzioni
echo "Allora $USERNAME, facciamo questo gioco. Troverai del sostantivi italiani inseriti in un complemento. Dovrai tradurli in latino nel caso corretto. Cominciamo!"|say

#pausa
sleep 5

#definizione delle variabili
FILE=~/quiz_latino/parole_latine1
DOM1=`awk "NR==1"{print} $FILE`
DOM2=`awk "NR==3"{print} $FILE`
DOM3=`awk "NR==5"{print} $FILE`
DOM4=`awk "NR==7"{print} $FILE`
DOM5=`awk "NR==9"{print} $FILE`
DOM6=`awk "NR==11"{print} $FILE`
DOM7=`awk "NR==13"{print} $FILE`
DOM8=`awk "NR==15"{print} $FILE`
DOM9=`awk "NR==17"{print} $FILE`
DOM10=`awk "NR==19"{print} $FILE`
DOM11=`awk "NR==21"{print} $FILE`
DOM12=`awk "NR==23"{print} $FILE`
CORR1=`awk "NR==2"{print} $FILE`
CORR2=`awk "NR==4"{print} $FILE`
CORR3=`awk "NR==6"{print} $FILE`
CORR4=`awk "NR==8"{print} $FILE`
CORR5=`awk "NR==10"{print} $FILE`
CORR6=`awk "NR==12"{print} $FILE`
CORR7=`awk "NR==14"{print} $FILE`
CORR8=`awk "NR==16"{print} $FILE`
CORR9=`awk "NR==18"{print} $FILE`
CORR10=`awk "NR==20"{print} $FILE`
CORR11=`awk "NR==22"{print} $FILE`
CORR12=`awk "NR==24"{print} $FILE`
COMPL=`echo "Bravo! Passiamo alla prossima domanda:"`
COMPL2=`echo "Bravo $USERNAME! Hai passato il test. Se vuoi passare al prossimo livello digita s o altrimenti n"`
COMPL3=`echo "Bravissimo $USERNAME! Tutte le risposte erano corrette! Se vuoi passare al prossimo livello digita s o altrimenti n"`
FALSO1=`echo "No $USERNAME! La risposta giusta era $CORR1!"`
FALSO2=`echo "No $USERNAME! La risposta giusta era $CORR2!"`
FALSO3=`echo "No $USERNAME! La risposta giusta era $CORR3!"`
FALSO4=`echo "No $USERNAME! La risposta giusta era $CORR4!"`
FALSO5=`echo "No $USERNAME! La risposta giusta era $CORR5!"`
FALSO6=`echo "No $USERNAME! La risposta giusta era $CORR6!"`
FALSO7=`echo "No $USERNAME! La risposta giusta era $CORR7!"`
FALSO8=`echo "No $USERNAME! La risposta giusta era $CORR8!"`
FALSO9=`echo "No $USERNAME! La risposta giusta era $CORR9!"`
FALSO10=`echo "No $USERNAME! La risposta giusta era $CORR10!"`
FALSO11=`echo "No $USERNAME! La risposta giusta era $CORR11!"`
FALSO12=`echo "No $USERNAME! La risposta giusta era $CORR12!"`
S=s
RISP_N=`echo "Ciao $USERNAME! Ti auguro un buon divertimento."`
HORR=~/quiz_latino/horror011.wav
WIN=~/quiz_latino/winning_brasses.aiff

#domanda
echo "$DOM1"
echo "$DOM1"|say
read RISP1

#svolgimento dell'esercizio
if [ "$RISP1" == "$CORR1" ]; then
P1=1
echo "$COMPL"|say
else 
P1=0
afplay "$HORR"
echo "$FALSO1"|say
fi
echo "$DOM2"
echo "$DOM2"|say
read RISP2
if [ "$RISP2" == "$CORR2" ]; then
P2=1
echo "$COMPL"|say
else
P2=0
afplay "$HORR"
echo "$FALSO2"|say
fi
echo "$DOM3"
echo "$DOM3"|say
read RISP3
if [ "$RISP3" == "$CORR3" ]; then
P3=1
echo "$COMPL"|say
else
P3=0
afplay "$HORR"
echo "$FALSO3"|say
fi
echo "$DOM4"
echo "$DOM4"|say
read RISP4
if [ "$RISP4" == "$CORR4" ]; then
P4=1
echo "$COMPL"|say
else
P4=0
afplay "$HORR"
echo "$FALSO4"|say
fi
echo "$DOM5"
echo "$DOM5"|say
read RISP5
if [ "$RISP5" == "$CORR5" ]; then
P5=1
echo "$COMPL"|say
else
P5=0
afplay "$HORR"
echo "$FALSO5"|say
fi
echo "$DOM6"
echo "$DOM6"|say
read RISP6
if [ "$RISP6" == "$CORR6" ]; then
P6=1
echo "$COMPL"|say
else
P6=0
afplay "$HORR"
echo "$FALSO6"|say
fi
echo "$DOM7"
echo "$DOM7"|say
read RISP7
if [ "$RISP7" == "$CORR7" ]; then
P7=1
echo "$COMPL"|say
else
P7=0
afplay "$HORR"
echo "$FALSO7"|say
fi
echo "$DOM8"
echo "$DOM8"|say
read RISP8
if [ "$RISP8" == "$CORR8" ]; then
P8=1
echo "$COMPL"|say
else
P8=0
afplay "$HORR"
echo "$FALSO8"|say
fi
echo "$DOM9"
echo "$DOM9"|say
read RISP9
if [ "$RISP9" == "$CORR9" ]; then
P9=1
echo "$COMPL"|say
else
P9=0
afplay "$HORR"
echo "$FALSO9"|say
fi
echo "$DOM10"
echo "$DOM10"|say
read RISP10
if [ "$RISP10" == "$CORR10" ]; then
P10=1
echo "$COMPL"|say
else
P10=0
afplay "$HORR"
echo "$FALSO10"|say
fi
echo "$DOM11"
echo "$DOM11"|say
read RISP11
if [ "$RISP11" == "$CORR11" ]; then
P11=1
echo "$COMPL"|say
else
P11=0
afplay "$HORR"
echo "$FALSO11"|say
fi
echo "$DOM12"
echo "$DOM12"|say
read RISP12
if [ "$RISP12" == "$CORR12" ]; then
P12=1
else
P12=0
afplay "$HORR"
echo "$FALSO12"|say

fi
PUNTEGGIO=`expr $P1 + $P2 + $P3 + $P4 + $P5 + $P6 + $P7 + $P8 + $P9 + $P10 + $P11 + $P12`
echo "il tuo punteggio è: $PUNTEGGIO punti"|say
echo "il tuo punteggio è: $PUNTEGGIO punti"
echo "$PUNTEGGIO" > ~/quiz_latino/${USERNAME}1_DAT

if [ "$PUNTEGGIO" -ge 7 -a "$PUNTEGGIO" -le 11 ]
then
afplay "$WIN"
echo "$COMPL2"|say
read RISP_S_N
	if [ "$RISP_S_N" == "$S" ]; then
	open -a /Applications/Utilities/Terminal.app/ ~/quiz_latino/quiz_latino2
	else
	echo "$RISP_N"|say;exit
	fi	
elif [ "$PUNTEGGIO" -eq 12 ]
then
afplay "$WIN"
echo "$COMPL3"|say
 read RISP_S_N
         if [ "$RISP_S_N" == "$S" ]; then
         open -a /Applications/Utilities/Terminal.app/ ~/quiz_latino/quiz_latino2
         else
         echo "$RISP_N"|say;exit
         fi      

else
echo "Sorry! Il tuo punteggio è troppo basso. Riprova"
echo "Sorry! Il tuo punteggio è troppo basso. Riprova"|say;sleep 3

echo "#! //bin/bash

open -a /Applications/Utilities/Terminal.app ~/quiz_latino/quiz_latino1" > ~/quiz_latino/open_quiz_1
chmod +x ~/quiz_latino/open_quiz_1
open -a /Applications/Utilities/Terminal.app ~/quiz_latino/open_quiz_1
sleep 10
rm ~/quiz_latino/open_quiz_1


exit

fi




Mehr Informationen über die Mailingliste linux-l