[linux-l] Bash_Script von Browser. Hilfe!

Andreas Röhler andreas.roehler at online.de
Fr Mär 29 09:49:28 CET 2013


Am 29.03.2013 07:50, schrieb Antonello Marafioti:
> 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
>

Hier gabs vor einiger Zeit neben Python-shells auch die Bash, vom Browser aus zu bedienen:

https://www.pythonanywhere.com

Viel Spaß!

Andreas



Mehr Informationen über die Mailingliste linux-l