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)