Aprender uma nova linguagem de programação pode ser divertido. Sempre que tento aprender uma nova, eu me concentro em definir variáveis, escrever uma declaração e avaliar expressões. Uma vez que eu tenha uma compreensão geral desses conceitos, eu geralmente posso descobrir o resto por conta própria. A maioria das linguagens de programação tem algumas semelhanças, então uma vez que você conhece uma linguagem de programação, aprender a próxima é uma questão de descobrir os detalhes únicos e reconhecer as diferenças nela.

Para me ajudar a praticar uma nova linguagem de programação, eu gosto de escrever alguns programas de teste. Um programa de exemplo que escrevo frequentemente é um simples programa “adivinhe o número”, onde o computador escolhe um número entre um e 100 e me pede para adivinhar o número. O programa “adivinha o número” exercita vários conceitos em linguagens de programação: como atribuir valores a variáveis, como escrever declarações, e como fazer avaliação condicional e loops. É um grande experimento prático para aprender uma nova linguagem de programação.

Guinhe o número em Bash

Bash é o shell padrão para a maioria dos sistemas Linux. Além de fornecer uma interface de usuário de linha de comando rica, o Bash também suporta uma linguagem de programação completa na forma de scripts.

Se você não está familiarizado com o Bash, eu recomendo estas introduções:

  • O que é Bash?
  • Comece com programação Bash
  • Comece com scripts Bash para sysadmins
  • Como escrever funções em Bash
  • Ler mais sobre Bash

Pode explorar Bash escrevendo uma versão do jogo “adivinhe o número”. Aqui está minha implementação:

Quebrando o script

A primeira linha do script, #!/bin/bash diz ao Linux para rodar este script usando o Bash shell. Todo script começa com o par de caracteres #!, o que indica que este é um script shell. O que se segue imediatamente #! é a shell a ser executada. Neste caso, /bin/bash é a shell do Bash.

Para atribuir um valor a uma variável, liste o nome da variável seguido do sinal =. Por exemplo, a instrução guess=0 atribui um valor zero à variável guess.

Vocês também podem solicitar ao usuário que insira um valor usando a instrução read. Se você escrever read guess, Bash espera que o usuário digite algum texto e então armazena esse valor na variável guess.

Para referenciar o valor de uma variável, use $ antes do nome da variável. Então, tendo armazenado um valor na variável guess, você pode recuperá-lo usando $guess.

Você pode usar qualquer nome que quiser para variáveis, mas o Bash reserva alguns nomes especiais de variáveis para si mesmo. Uma variável especial é RANDOM, que gera um número aleatório muito grande cada vez que você faz referência a ela.

Se você quiser realizar uma operação ao mesmo tempo em que armazena um valor, você precisa anexar a declaração entre parênteses especiais. Isto diz ao Bash para executar essa instrução primeiro, e o = armazena o valor resultante na variável. Para avaliar uma expressão matemática, use $(( )) em torno da expressão. Os parênteses duplos indicam uma expressão aritmética. No meu exemplo, number=$(( $RANDOM % 100 + 1 )) avalia a expressão $RANDOM % 100 + 1 e depois armazena o valor na variável number.

Operadores aritméticos padrão como + (mais), - (menos), * (multiplicar), / (dividir), e % (modulo) se aplicam.

Isso significa que a expressão number=$(( $RANDOM % 100 + 1 )) gera um número aleatório entre um e 100. O operador do módulo (%) retorna o restante após dividir dois números. Neste caso, o Bash divide um número aleatório por 100, deixando o restante no intervalo de zero a 99. Ao adicionar um a esse valor, você obtém um número aleatório entre um e 100.

Bash suporta expressões condicionais e controle de fluxo como loops. No jogo “guess the number”, o Bash continua a fazer loops desde que o valor em guess não seja igual a number. Se o palpite for menor que o número aleatório, o Bash imprime “Too low”, e se o palpite for maior que o número, o Bash imprime “Too high”

Como funciona

Agora você tenha escrito o seu script Bash, você pode executá-lo para jogar o jogo “adivinhe o número”. Continue adivinhando até encontrar o número correto:

Guess a number between 1 and 100
50
Too high
30
Too high
20
Too high
10
Too low
15
Too high
13
Too low
14
That's right!

A cada vez que você executar o script, o Bash irá escolher um número aleatório diferente.

Este jogo “adivinhe o número” é um ótimo programa introdutório quando se aprende uma nova linguagem de programação, pois ele exercita vários conceitos comuns de programação de uma maneira bem simples. Ao implementar este simples jogo em diferentes linguagens de programação, você pode demonstrar alguns conceitos centrais e comparar detalhes em cada linguagem.

Você tem uma linguagem de programação favorita? Como você escreveria o jogo “adivinhe o número” nele? Siga esta série de artigos para ver exemplos de outras linguagens de programação que possam lhe interessar.