qshell 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. #!/bin/bash
  2. #-------------HEADER-----------------------------------------------------------|
  3. #AUTOR:
  4. # Jefferson Rocha <lrcjefferson@gmail.com>
  5. #
  6. #PROGRAMA:
  7. # Show do Milhão do Linux
  8. #------------------------------------------------------------------------------|
  9. # (Váriaveis locais)
  10. programa="Show do milhão, versão 1.0"
  11. total=0 # Zerando var
  12. # (Funções)
  13. sound() {
  14. ogg123 milhao.ogg 2>&- & sleep 1.7s
  15. }
  16. variavel_nula() {
  17. dialog --stdout --title "Aviso!" --backtitle "$programa" \
  18. --infobox "Se não escolher nada você vai ganhar um milhão em outro lugar, $nome!" 5 40 ; sleep 4
  19. }
  20. # (Inicio do programa)
  21. dialog --stdout --title "Bem vindo!" --backtitle "$programa" \
  22. --extra-button --extra-label "Sou nutella, é muito pra mim." \
  23. --ok-label "Ok, MR Slackjeff" \
  24. --msgbox "
  25. Não vale colar, pesquisar ou nenhuma coisa desse tipo que seja coisa de usuário
  26. Nutella!
  27. Essa é a minha roleta russa, ou você sabe ou você chora.
  28. São 10 perguntas do misturadas, cada pergunta certa é que vale
  29. a 1 ponto, se você tirar uma pontuação >= a 8 você está indo bem.
  30. Tirou abaixo disso, volte a estudar porque você não é CAVEIRA caral**
  31. Você é apenas uma muleque que fica passeando pelo X enquanto seus colegas estão,
  32. aprendendo e virando o S.O de cabeça pra baixo!.
  33. " 0 0
  34. if [[ $? -eq 3 ]]; then
  35. echo "Nutella, puff."
  36. exit
  37. fi
  38. ogg123 participante.ogg 2>&-
  39. while true ;do
  40. nome=$(
  41. dialog --stdout --title "Seu nome" --backtitle "$programa" \
  42. --inputbox "
  43. Antes de prosseguir preciso saber o seu nome! pra que?
  44. Bom é pra roubar seu cartão de crédito.
  45. Bota loga o nome ai" 0 0
  46. )
  47. if [ ! -z $nome ]; then
  48. break
  49. else # É nulo? loop nele!
  50. dialog --stdout --title "Aviso!" --backtitle "$programa" \
  51. --infobox "
  52. Enquanto não por seu nome eu não vou prosseguir.
  53. Eu sou difícil e você sabe!" 0 0; sleep 4
  54. fi
  55. done
  56. ogg123 inicio.ogg 2>&-
  57. pergunta1=$(
  58. sound
  59. dialog --stdout --title "Pergunta 1" --backtitle "$programa" \
  60. --checklist "Qual comando é utilizado para remover arquivos e pastas?" \
  61. 0 0 0 \
  62. rm "" off \
  63. mkdir "" off \
  64. "ls -l" "" off \
  65. cp "" off \
  66. ls "" off \
  67. "rm -r" "" off \
  68. chmod "" off )
  69. if [ "$pergunta1" = 'rm "rm -r"' ]; then
  70. let total++
  71. elif [ -z $pergunta1 ]; then
  72. variavel_nula
  73. fi
  74. # Pergunta 2
  75. sound
  76. dialog --stdout --title "Pergunta 2" --backtitle "$programa" \
  77. --yes-label "Verdadeiro" --no-label "Falso" \
  78. --yesno "
  79. .Bashrc que está presente em sua pasta 'Home' serve para fazer configurações,
  80. de todos usuários após o login.
  81. Verdadeiro ou Falso?" 0 0
  82. if [ $? -eq 1 ]; then
  83. let total++
  84. fi
  85. pergunta3=$(
  86. sound
  87. dialog --stdout --title "Pergunta 3" --backtitle "$programa" \
  88. --radiolist "
  89. Selecione uma das alternativas!
  90. Sabemos que o comando diff é muito importante para os programadores.
  91. Quando a questão é controle! O que ele compara?" \
  92. 0 0 0 \
  93. 1 "Compara a versão do bash" off \
  94. 2 "Compara as versões do programa no github" off \
  95. 3 "Faz a comparação de arquivos/programas para lançamento de patchs" off \
  96. 4 "Compara as versões do programa e usa o sftp para se conectar" off )
  97. if [ $pergunta3 -eq 3 ]; then
  98. let total++
  99. elif [ -z $pergunta ]; then
  100. variavel_nula
  101. fi
  102. # Pergunta 4
  103. sound
  104. dialog --stdout --title "Pergunta 4" --backtitle "$programa" \
  105. --yes-label "Verdadeiro" --no-label "Falso" \
  106. --yesno "
  107. Sabemos que o Kernel Linux é uma distribuição difundida no mundo e
  108. seu criador Richard Stallman fez uma cópia discarada do UNIX.
  109. Essa afirmação é verdadeira ou falsa?" 0 0
  110. if [ $? -eq 1 ]; then
  111. let total++
  112. fi
  113. pergunta5=$(
  114. sound
  115. dialog --stdout --title "Pergunta 5" --backtitle "$programa" \
  116. --inputbox "Qual nome do Criador do Kernel Linux?" 0 0
  117. )
  118. pergunta5=${pergunta5,,}
  119. if [ "$pergunta5" = "linus torvalds" ]; then
  120. let total++
  121. fi
  122. pergunta6=$(
  123. sound
  124. dialog --stdout --title "Pergunta 6" --backtitle "$programa" \
  125. --radiolist "
  126. Qual foi a sêquencia de criação destes projetos!?" \
  127. 0 0 0 \
  128. 1 "GNU/Linux, Minix, UNIX" off \
  129. 2 "Fernandinho beira mar, Pedro meu vizinho, UNIX" off \
  130. 3 "UNIXX, Minix, GNU/Linux" off \
  131. 4 "Carla perez, UNIX, Ivete sangalo, Luan santana" off \
  132. 5 "UNIX, Minix, GNU/Linux" off \
  133. 6 "Minix, UNIX, GNU/Linux" off \
  134. 7 "UNIX, Windows, MAC, Kurumin" off \
  135. 8 "Windows, UNIX, GNU/Linux, MAC" off )
  136. if [ $pergunta6 -eq 5 ]; then
  137. let total++
  138. elif [ -z $pergunta6 ]; then
  139. variavel_nula
  140. fi
  141. pergunta7=$(
  142. sound
  143. dialog --stdout --title "Pergunta 7" --backtitle "$programa" \
  144. --radiolist "
  145. Sabemos que um Vetor ou Array consegue armazenar várias 'strings ou números' no mesmo local.
  146. Diferentemente de uma simples váriavel, que consegue armazer somente uma 'string ou número'
  147. Veja o exemplo:
  148. array1=(pipoca massinha pera 'pão com ovo')
  149. Preciso fazer uma chamada de todas strings em seguida, preciso chamar o 'pão com ovo' somente.
  150. Faça sua escolha:" \
  151. 0 0 0 \
  152. 1 'array1${{all}} , array1${{3}}' off \
  153. 2 "array1(1,2,3) , array1(2)" off \
  154. 3 '${array[@]} , ${array[3]}' off )
  155. if [ $pergunta7 -eq 3 ]; then
  156. let total++
  157. elif [ -z $pergunta7 ]; then
  158. variavel_nula
  159. fi
  160. pergunta8=$(
  161. sound
  162. dialog --stdout --title "Pergunta 8" --backtitle "$programa" \
  163. --radiolist "
  164. O que o teste está testando e esse código irá funcionar?
  165. equal=;[ -z $equal ]&& exit 1 || continue" \
  166. 0 0 0 \
  167. 1 "equal é nula, sim irá funcionar" off \
  168. 2 "equal é igual, sim irá funcionar" off \
  169. 3 "equal é igual ou maior, não irá funcionar" off \
  170. 4 "equal é não nula, sim irá funcionar" off )
  171. if [ $pergunta8 -eq 1 ]; then
  172. let total++
  173. elif [ -z $pergunta8 ]; then
  174. variavel_nula
  175. fi
  176. # Pergunta 9
  177. sound
  178. dialog --stdout --title "Pergunta 9" --backtitle "$programa" \
  179. --yes-label "Verdadeiro" --no-label "Falso" \
  180. --yesno "
  181. O dpkg é uma ferramenta de baixo nível, serve para manutenção de pacotes na distribuição debian.
  182. Ele teve seu primeiro código escrito em perl posteriormente teve uma grande parte,
  183. reescrito em C.
  184. Essa afirmação é verdadeira ou falsa?" 0 0
  185. if [ $? -eq 0 ]; then
  186. let total++
  187. fi
  188. pergunta10=$(
  189. sound
  190. dialog --stdout --title "Pergunta 10" --backtitle "$programa" \
  191. --checklist "
  192. O comando touch como sabemos serve para criar arquivos. (sabemos que isso não presta).
  193. Selecione 'DUAS' formas práticas de verificar se o arquivo existe e criar.
  194. " \
  195. 0 0 0 \
  196. 1 "[ ! -e arquivo ]&& touch arquivo" off \
  197. 2 "> arquivo" off \
  198. 3 "echo 'texto' > arquivo" off \
  199. 3 "[ ! -e arquivo ]&& > arquivo && echo 'texto legal' > arquivo" off )
  200. if [ $pergunta10 -eq 2 ]; then
  201. let total++
  202. fi
  203. if [ $total -ge 8 ]; then
  204. final=$(echo "$nome-finalizado.$RANDOM.key")
  205. dialog --stdout --title "FINALIZADO" --backtitle "$programa" \
  206. --ok-label "Curta meus vídeos!" \
  207. --msgbox "
  208. PÁRABENS $nome!!!!! seu total foi de $total pontos!
  209. Fico feliz que você manja e provávelmente estuda.
  210. criei uma chave para você, poste no meu canal do youtube está chave.
  211. Com está chave eu sei que você conseguiu!
  212. $final" 0 0
  213. else
  214. dialog --stdout --title "FINALIZADO" --backtitle "$programa" \
  215. --msgbox "
  216. $nome, isso é vergonhoso! sua pontuação foi de $total.
  217. Se você tem menos de 1 ano de linux eu te dou um desconto!" 0 0
  218. fi