Algoritmos em Shell Script

Abordando de forma conceitual e prática, a construção de algoritmos através de Shell Script.

[ Hits: 48.887 ]

Por: Wagner Souza em 20/06/2014 | Blog: https://medium.com/@souzaw


Variáveis / Operadores



Variáveis

Em lógica de programação, variáveis são espaços reservados na memória para armazenar um dado a ser utilizado em uma operação aritmética, lógica e em atribuições de valores.

O valor da variável pode mudar de acordo com o andamento do algoritmo como, por exemplo, no cálculo de um média anual para alunos de uma escola. Cada aluno terá suas notas, onde estas serão calculadas para a obtenção da média.

Algumas variáveis pode ter um valor fixo como a fórmula para o cálculo do raio de uma circunferência, onde Pi tem um valor aproximado de 3,1416... Aqui, Pi sempre terá este mesmo valor.

Antes de começar a criar variáveis, é importante seguir algumas dicas para nomeá-las:

1. Nome de variáveis não podem ser iguais a palavras reservadas, nem tampouco conter caracteres especiais (* & # @);

Exemplo: if, while, for.

2. Não inicie variáveis com números e sempre atribua nomes que facilite o trabalho futuro. Não atribua nomes a variáveis como a, b, c... Se o desenvolvedor do código não tiver o costume de comentar o seu código, esse tipo de nome não ajudará em nada a lembrar a utilidade da variável;

3. Cuidado com nomes muito extensos. Via de regra, o tamanho do nome de uma variável não deve ultrapassar 127 caracteres;

4. Não pode conter espaços em branco;

5. Padronize no quesito de letras maiúsculas ou minúsculas. Sempre procuro por nomes com letra em minúsculo.

Em shell, diferente de outras linguagens de programação, não faz-se necessário indicar o tipo da variável. Não é preciso informar se a variável será um número inteiro, real, caractere (string) ou lógico.

Exemplo de programa em C:

#include <stdio.h>
void main()
{
   int contador;
   float PrecoDoQuilo;
   double TaxaDeCambio;
   char LetraDigitada;
   int IdadeManoel, IdadeJoao, IdadeMaria;

   double  TaxaDoDolar,
           TaxaDoMarco,
           TaxaDoPeso,
           TaxaDoFranco;
.......
}

Exemplo de um Shell Script:

#!bin/bash

var="teste"

num=3

echo "$var $num"

Perceba que a variável var é reconhecida pelo shell através do caractere $. Entre o nome de uma variável e o sinal de atribuição (=), não podem haver espaços em branco. Do contrário, ocasionará erros. A diferença entre as duas variáveis, é que uma é um número inteiro e a outra uma string caracterizada pelas aspas duplas.

Caso exista uma variável entre as aspas duplas, o valor desta será considerado. Se estiver entre aspas simples ('') será considerado o valor literal. E, por último, se a variável estiver entre crases (``), o comando do sistema será executado.

Existem variáveis pré-definidas no sistema para serem utilizadas. Vale lembrar que ao trabalhar com Shell Script, pode-se interagir com comandos internos do sistema GNU/Linux, como cat, tail, ls, entre outros. Essa interação será vista no decorrer do artigo.

Variáveis Especiais:
  • $* → Todos os valores passados como argumentos;
  • $n → O valor do argumento na posição n;
  • $0 → Nome do script que está sendo executado;
  • $1-$9 → Parâmetros passados pela linha de comando;
  • $# → Total de parâmetros passados;
  • $? → Valor de retorno do último comando ou de todo o script;
  • $$ → Número do processo executado (PID).

Operadores

Abaixo, uma listagem de operadores lógicos, condicionais e aritméticos utilizados para escrever scripts em shell com estruturas de controles, funções, entre outros.

Operadores Aritméticos:
  • + → Adição
  • - → Subtração
  • * → Multiplicação
  • / → Divisão
  • ** → Exponenciação
  • % → Resto da divisão (mod)

Operadores de Comparação:
  • = → Igual (strings)
  • != → Desigualdade
  • < → Menor que
  • > → Maior que
  • <= → Menor ou Igual
  • >= → Maior ou igual

Operadores de Expressões Condicionais:
  • -lt → Número é menor que (LessThan)
  • -gt → Número é maior que (GreaterThan)
  • -le → Número é menor ou igual (LessEqual)
  • -ge → Número é maior ou igual (GreaterEqual)
  • -eq → Número é igual (EQual)
  • -ne → Número é diferente (NotEqual)
  • -a → E lógico (AND)
  • -o → OU lógico (OU)

Testes em Arquivos:
  • -d → Se for um diretório
  • -e → Se existir
  • -z → Se estiver vazio
  • -f → Se contiver texto
  • -s → Se o tamanho do arquivo for maior que zero
  • -r → Se o arquivo tem permissão de leitura
  • -w → Se o arquivo tem permissão de escrita
  • -x → Se o arquivo pode ser executado
  • -nt → Se o arquivo for mais recente (NewThan)
  • -ot → Se o arquivo é mais antigo (OlderThan)
  • -ef → Se o arquivo é o mesmo (EqualFile)

Página anterior     Próxima página

Páginas do artigo
   1. Introdução / O Shell Script
   2. Variáveis / Operadores
   3. Primeiros algoritmos
   4. Estrutura de seleção
   5. Estrutura de repetição
   6. Funções
   7. Vetor (array)
Outros artigos deste autor

Resetando senha de usuário root em sistemas Debian e Red Hat

Montando Servidor de Internet com Ubuntu Server

Shell Script nosso de cada dia - Episódio 3

Atualização das provas LPIC-1, 304 e Essentials

Elastic SIEM - Instalação e Configuração do LAB (Parte I)

Leitura recomendada

Introdução ao Shell Script

Recursos avançados do bash que você não aprende na escola

Backup automático em Shell Script

Monitoramento automático de logs e alertas por e-mail - Fácil e explicado

Como trabalhar com funções em bash

  
Comentários
[1] Comentário enviado por di4s em 20/06/2014 - 00:36h

muito bom, parabéns

[2] Comentário enviado por jwolff em 20/06/2014 - 09:22h

obrigado por compartilhar seu conhecimento

[3] Comentário enviado por wagnerfs em 20/06/2014 - 09:38h

Obrigado pessoal pelo incentivo. Acompanhem também os exercícios práticos para LPI que semanalmente posto aqui no VOL. Em breve estarei disponibilizando novos artigos.

[4] Comentário enviado por removido em 20/06/2014 - 12:01h

Ótimo artigo!

Estou estudando Lógica de Programação e ajudou a estudar as variáveis/operadores de forma mais ampla.
VLW!

[5] Comentário enviado por danniel-lara em 20/06/2014 - 14:28h

Meus Parabéns
Muito bom o seu Artigo

[6] Comentário enviado por andregyn em 21/06/2014 - 10:26h

Muito bom!!
Parabéns pelo artigo.

[7] Comentário enviado por xerxeslins em 21/06/2014 - 10:55h

Curti. já botei nos favoritos.

[8] Comentário enviado por removido em 21/06/2014 - 15:19h

Muito bom,espalhando conhecimento!Quando eu pegar mais as manhas do linux e unix também pretendo postar umas dicas aqui.Estou estudando C e shellScript também,foi de grande ajuda.

[9] Comentário enviado por xjc em 22/06/2014 - 00:43h

Show de bola, inovou e jogou duro, parabéns

[10] Comentário enviado por removido em 24/06/2014 - 10:43h

Muito bom seu artigo! Estou iniciando em shellscript e foi de grande proveito este artigo. Escreve muito bem e a bibliografia que utilizou também é muito boa.
Poderia me dizer onde se encontra estes exercícios para a LPI?
Um grande abraço!

[11] Comentário enviado por wagnerfs em 24/06/2014 - 10:50h

Obrigado malkoonqnu. Segue o link do primeiro exercício http://www.vivaolinux.com.br/dica/Exercicio-Pratico-LPIC-01. Abaixo deste, tem o link do segundo. Toda semana estou postando novos exercícios.

[12] Comentário enviado por andregyn em 09/07/2014 - 20:26h

A variável para conversão de Celsius para Fahrenheit ficaria assim: fah=$((9*$cel/5+32))
Belo artigo.

[13] Comentário enviado por raphaellima em 24/09/2014 - 12:03h

Muito bom velho.

[14] Comentário enviado por cleciosc em 30/09/2014 - 20:48h

Excelente artigo.

Ps.: Após apresentada a formula ( F=(9*C+160) / 5 ), o calculo efetuado no script está incorreto, fah=$((9*$cel+160)). Faltou a divisão por 5, ou seja, estaria apresentando um cálculo errado no meu script.

Só foi uma observação principalmente para aqueles que estão acostumados com as teclas CTRL+C e CTRL+V.







Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts