#!/bin/bash # # A versão do programa Einstein em shell script. # esse programa rolou na internet há alguns anos atrás. # # Dá para brincar com muita gente que não é da área :) # # como perdi e, a versão que tinha era para windows, fiz # uma para UNIX. # # ################################################ # Como usar # # O esquema está na variável char_especial, onde você define # qual será a tecla utilizada para acionar o comportamento # especial do programa. # Após executar o programa, se a **primeira** tecla pressionada # for a que estiver definida na variável char_especial o comportamento # especial é iniciado. Quando isto ocorre, para cada tecla que você for # pressionando, um caractere de uma frase pré-definida irá ecoar na tela. # a tecla que você pressionou é armazenada em uma variável. # quando você apertar de novo a 'char_especial', é finalizado este processo # e tudo o que você teclar será novamente ecoado na tela. # Quando você pressionar enter, será mostrado tudo o que você teclou # escondido, ou seja, entre as duas pressionadas do char_especial. # # Assim, você escreve a resposta escondido, e faz a pergunta para a # resposta que você digitou. # # Experimente algumas vezes que você vai pegar o esquema =8) # # ################################################ # # Versão 2.0 - totalmente remodelada e com alguns bug fixed # # Thobias Salazar Trevisan f1="Meu amável guru, por favor me responda" f2="Seu monte de lixo, responda" f3="Seu monte de bugigangas, responda" f4="Sua sucata e ameba, me responda" r1="Não respondo para sub-alternos" r2="Vai procurar sua turma" r3="Hoje não é o seu dia" # se aumentar o número de perguntas possíveis # modifiquei o valor 4 da linha abaixo i=0;char_especial="/"; n="f$(($RANDOM%4+1))" R="";M=0;X="X" read -s -n1 -p " Bem-Vindo ao Einstein Faça sua pergunta " [ "$REPLY" = "$char_especial" ] && M=1 || echo -n "$REPLY";IFS=¿ while [ "$(echo -n "$X" | od)" != "0000000" ]; do read -s -n1 X if [ "$(echo -n "$X" | od -a | sed -n '1s/[0-9]\+ *//p')" = "del" ]; then echo -ne "\033[D "; echo -ne "\033[D" [ "$R" -a "$M" = "1" ] && R=$(echo "$R" | sed 's/.$//') [ "$i" != "0" ] && i=$((i-1)) else [ $M = 1 ] && { echo -n "${!n:i:1}" # letra a letra i=$((i+1)); R="$R$X" [ "$X" != "$char_especial" ] || M=0; } || echo -n "$X" fi done [ "$R" ] && echo -e "\nResposta: ${R%$char_especial*}" || # se aumentar o número de respostas possíveis aumente o # valor 3 da linha abaixo { n="r$(($RANDOM%3+1))";echo -e "\nResposta: ${!n}"; }