Algoritmos em Shell Script

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

[ Hits: 48.078 ]

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

Teste de Intrusão com Metasploit

Exploração de Falhas em Servidores FTP

Montando Servidor de Internet com Ubuntu Server

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

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

Leitura recomendada

Programando em shell script (conceitos básicos)

expr - Definição e uso do comando

Introduzindo prazerosamente aos poucos... o shell script

Como matar um processo - kill, killall, pkill e xkill

Exemplos práticos de comandos com Parted

  
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