Para a construção de algoritmos, é muito importante a organização do código. Para este artigo, será seguido um padrão para a criação dos algoritmos, como mostrado abaixo:
#!/bim/bash
#Autor:
#Data:
A primeira linha especifica o interpretador, que é indicado pelos caracteres
#!, termo conhecido como shebang. O caractere
#, significa que a linha é um comentário e não deverá ser interpretada pelo shell.
Para iniciarmos o primeiro script, abra o terminal e, de acordo com a sua preferência, escolha um editor de textos para começar:
nano alg.001.sh
Dentro do editor de texto, vamos escrever nosso primeiro algoritmo. Este algoritmo terá a função de receber dois números do usuário e efetuar uma soma.
Algoritmo 001:
#!/bin/bash
#Autor: k666
#Data: 13/07/2013
#Algoritmo que recebe dois números pelo usuário e realiza a soma destes
echo "Digite o primeiro número: "
read num1
echo "Digite o segundo número: "
read num2
soma=$((num1+num2))
echo "Total: $soma"
Salve o arquivo e, em seguida, lhe atribua a permissão de execução:
sudo chmod +x alg001.sh
$ ./alg001.sh
As variáveis foram declaradas junto ao código e foram utilizadas três. O comando
echo é usado para imprimir informações na tela. O
read, lê o conteúdo da variável.
Abaixo, serão apresentados mais exemplos de algoritmos. Proceda da mesma forma como mostrado anteriormente, sempre criando um novo arquivo de texto e após seu término, salve-o e lhe dê permissão de execução.
Algoritmo 002:
#!/bin/bash
#Autor: k666
#Data: 13/07/2013
#Algoritmo que calcula o desconto e total do valor de uma compra
echo "Valor do produto: "
read valp
echo "Quantidade de produtos: "
read qtd
echo "Informe o valor do desconto: "
read desc
#Cálculo do total inicial das compras
tcompra=$((valp*qtd))
#Cálculo para saber o desconto
tdesc=$((tcompra*desc/100))
#O valor final das compras será o valor total menos os descontos
total=$((tcompra-tdesc))
echo "Total das Compras: $total"
Para este exemplo foram usadas seis variáveis, separados os cálculos para ficar mais fácil o aprendizado e evitar erros no resultado final.
A grande dificuldade que muitos enfrentam em aprender lógica de programação, é oriundo de uma base fraca na matemática. Nos dois exemplos utilizados, foram postos elementos da matemática para resolução de problemas do cotidiano.
Algoritmo 003:
#!/bin/bash
#Autor: k666
#Data: 13/07/2013
#Algoritmo que recebe três notas fornecidas pelo usuário e calcula a média final
#Os valores das duas variáveis abaixo estão entre crases
#O comando date, sleep e clear fazem parte do sistema GNU/Linux
#O comando date retorna a data e hora atual do sistema. Aqui foi utilizado o comando
#date para retornar separadamente o dia (%d), mês (%m), ano (%Y) e hora (%T - time)
data=`date +%d/%m/%Y`
hora=`date +%T`
echo "Data atual: $data"
echo "Hora atual: $hora"
#$USER é uma variável pré-definida do sistema que exibe o usuário atual logado no sistema
echo "Bem-vindo usuário $USER"
#Realiza uma pausa de 3 segundos, ou mais você é que define,
#antes de executar o próximo comando
sleep 3
#Comando que serve para limpar a tela
clear
echo "Informe o nome do aluno: "
read nome
echo "Digite a primeira nota "
read nota1
echo "Digite a segunda nota "
read nota2
echo "Digite a terceira nota "
read nota3
media=$(((nota1+nota2+nota3)/3))
echo "A média final do aluno $nome é: $media"
Neste último algoritmo, dei uma incrementada com comandos do sistema GNU/Linux. Essa é uma das grandes vantagens de trabalhar com Shell Script.
Fiz o comentário direto no código, isso é importante, pois, com o decorrer do tempo, você termina esquecendo a funcionalidade de um código, principalmente quando este passa a ter muitas linhas.
À medida que os algoritmos forem aumentando de complexidade, apresentarei outros comandos do GNU/Linux junto com explicações.
Algoritmo 004:
#!/bin/bash
#Autor: k666
#Data: 13/07/2013
#Algoritmo que inverte o valor das variáveis
#Este valor deve ser informado pelo usuário
echo "Digite um valor qualquer: "
read var1
echo "Digite um outro valor qualquer: "
read var2
echo "Valores atuais das variáveis: "
echo "var1 = $var1 | var2 = $var2 "
#Será criada mais uma variável que armazenará um dos valores
#para realizar a troca
aux="$var2"
var2="$var1"
var1="$aux"
#O echo sem nenhuma informação serve para pular uma linha
echo
echo "Valores invertidos das variáveis: "
echo "var1 = $var1 | var2 = $var2 "
Algoritmo 005:
#!/bin/bash
#Autor: k666
#Data: 20/07/2013
#Algoritmo converte em graus Celsius e apresenta-a convertida
#em graus Fahrenheit. A fórmula de conversão é: F=(9*C+160) / 5,
#sendo F a temperatura em Fahrenheit e C a temperatura em Celsius.
echo "Informe a temperatura em graus Celsius: "
read cel
fah=$((9*$cel+160))
echo "Temperatura em Fahrenheit: $fah"