Bash Script – Operadores
Bash, a linguagem de script padrão no Linux e noutros sistemas Unix, oferece uma variedade de operadores que permitem realizar várias operações, desde cálculos aritméticos até comparações de strings e ficheiros. Neste artigo, exploraremos os diferentes tipos de operadores em Bash, fornecendo exemplos e explicações para cada um.
Operadores Aritméticos
Os operadores aritméticos em Bash são usados para realizar cálculos numéricos. Aqui estão alguns dos operadores aritméticos mais comuns:
Adição (+)
O operador de adição é usado para somar dois números. Veja um exemplo:
#!/bin/bash
num1=5
num2=3
resultado=$((num1 + num2))
echo "A soma é: $resultado"
Subtração (-)
O operador de subtração é usado para subtrair um número de outro. Veja um exemplo:
#!/bin/bash
num1=10
num2=4
resultado=$((num1 - num2))
echo "A subtração é: $resultado"
Multiplicação (*)
O operador de multiplicação é usado para multiplicar dois números. Veja um exemplo:
#!/bin/bash
num1=6
num2=7
resultado=$((num1 * num2))
echo "A multiplicação é: $resultado"
Divisão (/)
O operador de divisão é usado para dividir um número pelo outro. Veja um exemplo:
#!/bash/bin
num1=20
num2=5
resultado=$((num1 / num2))
echo "A divisão é: $resultado"
Módulo (%)
O operador de módulo retorna o resto da divisão entre dois números. Veja um exemplo:
#!/bin/bash
num1=15
num2=4
resultado=$((num1 % num2))
echo "O resto da divisão é: $resultado"
Operadores Booleanos
Os operadores booleanos em Bash são usados para avaliar expressões booleanas. Eles são frequentemente usados em instruções condicionais, como if
, para tomar decisões com base em condições verdadeiras ou falsas. Aqui estão os principais operadores booleanos:
E lógico (&&)
O operador &&
é usado para verificar se duas condições são verdadeiras. Se ambas as condições forem verdadeiras, a expressão inteira será verdadeira. Veja um exemplo:
#!/bin/bash
idade=25
temCartaDeConducao=true
if [ $idade -ge 18 ] && [ $temCartaDeConducao ]; then
echo "Pode conduzir."
else
echo "Não pode conduzir."
fi
Ou lógico (||)
O operador ||
é usado para verificar se pelo menos uma das condições é verdadeira. Se uma das condições for verdadeira, a expressão inteira será verdadeira. Veja um exemplo:
#!/bin/bash
temCafe=true
temCha=false
if [ $temCafe ] || [ $temCha ]; then
echo "Tem bebidas quentes."
else
echo "Não tem bebidas quentes."
fi
Negação lógica (!)
O operador !
é usado para negar uma condição. Se a condição for falsa, a negação tornará verdadeira, e vice-versa. Veja um exemplo:
#!/bin/bash
estaChuvendo=false
if ! [ $estaChuvendo ]; then
echo "Não está a chover."
else
echo "Está a chover."
fi
Operadores de Teste de Ficheiros
Os operadores de teste de ficheiros em Bash são usados para verificar as propriedades de ficheiros ou diretórios. Eles geralmente são usados em instruções condicionais para tomar decisões com base nas características dos ficheiros. Aqui estão alguns operadores de teste de ficheiros comuns:
-e
O operador -e
verifica se um ficheiro ou diretório existe. Veja um exemplo:
#!/bin/bash
ficheiro="exemplo.txt"
if [ -e $ficheiro ]; then
echo "O ficheiro existe."
else
echo "O ficheiro não existe."
fi
-f
O operador -f
verifica se um caminho especificado aponta para um ficheiro regular. Veja um exemplo:
#!/bin/bash
ficheiro="exemplo.txt"
if [ -f $ficheiro ]; then
echo "É um ficheiro regular."
else
echo "Não é um ficheiro regular."
fi
-d
O operador -d
verifica se um caminho especificado aponta para um diretório. Veja um exemplo:
#!/bin/bash
diretorio="/var/www"
if [ -d $diretorio ]; then
echo "É um diretório."
else
echo "Não é um diretório."
fi
-s
O operador -s
verifica se um ficheiro tem tamanho maior que zero. Veja um exemplo:
#!/bin/bash
ficheiro="exemplo.txt"
if [ -s $ficheiro ]; then
echo "O ficheiro tem conteúdo."
else
echo "O ficheiro está vazio."
fi
Operadores Relacionais
Os operadores relacionais em Bash são usados para comparar valores. Eles retornam verdadeiro ou falso com base na relação entre os valores. Aqui estão os operadores relacionais mais comuns:
-eq (igual)
O operador -eq
verifica se dois valores são iguais numericamente. Veja um exemplo:
#!/bin/bash
numero1=5
numero2=5
if [ $numero1 -eq $numero2 ]; then
echo "Os números são iguais."
else
echo "Os números são diferentes."
fi
-ne (diferente)
O operador -ne
verifica se dois valores são diferentes numericamente. Veja um exemplo:
#!/bin/bash
numero1=10
numero2=7
if [ $numero1 -ne $numero2 ]; then
echo "Os números são diferentes."
else
echo "Os números são iguais."
fi
-gt (maior que)
O operador -gt
verifica se o primeiro valor é maior que o segundo. Veja um exemplo:
#!/bin/bash
idade=20
idadeMinima=18
if [ $idade -gt $idadeMinima ]; then
echo "Você é maior de idade."
else
echo "Você é menor de idade."
fi
-lt (menor que)
O operador -lt
verifica se o primeiro valor é menor que o segundo. Veja um exemplo:
#!/bin/bash
pontuacao=85
pontuacaoMinima=90
if [ $pontuacao -lt $pontuacaoMinima ]; then
echo "A sua pontuação está abaixo da mínima."
else
echo "A sua pontuação está acima da mínima."
fi
-ge (maior ou igual a)
O operador -ge
verifica se o primeiro valor é maior ou igual ao segundo. Veja um exemplo:
#!/bin/bash
idade=21
idadeMinima=18
if [ $idade -ge $idadeMinima ]; then
echo "Você é maior de idade ou tem 18 anos."
else
echo "Você é menor de idade."
fi
-le (menor ou igual a)
O operador -le
verifica se o primeiro valor é menor ou igual ao segundo. Veja um exemplo:
#!/bin/bash
nota=85
notaMaxima=100
if [ $nota -le $notaMaxima ]; then
echo "A sua nota está dentro da faixa permitida."
else
echo "A sua nota está acima da faixa permitida."
fi
Operadores de String
Os operadores de string em Bash são usados para comparar strings. Eles retornam verdadeiro ou falso com base na relação entre as strings. Aqui estão os operadores de string mais comuns:
= (igual)
O operador =
verifica se duas strings são idênticas. Veja um exemplo:
#!/bin/bash
nome1="Alice"
nome2="Alice"
if [ $nome1 = $nome2 ]; then
echo "Os nomes são iguais."
else
echo "Os nomes são diferentes."
fi
!= (diferente)
O operador !=
verifica se duas strings são diferentes. Veja um exemplo:
#!/bin/bash
fruta1="maçã"
fruta2="banana"
if [ $fruta1 != $fruta2 ]; then
echo "As frutas são diferentes."
else
echo "As frutas são iguais."
fi
-z (vazia)
O operador -z
verifica se uma string está vazia. Veja um exemplo:
#!/bin/bash
texto=""
if [ -z "$texto" ]; then
echo "O texto está vazio."
else
echo "O texto não está vazio."
fi
-n (não vazia)
O operador -n
verifica se uma string não está vazia. Veja um exemplo:
#!/bin/bash
mensagem="Olá, mundo!"
if [ -n "$mensagem" ]; then
echo "A mensagem não está vazia."
else
echo "A mensagem está vazia."
fi
Conclusão
Neste artigo, exploramos os principais operadores em Bash, incluindo operadores aritméticos, booleanos, de teste de ficheiros, relacionais e de string. Esses operadores desempenham um papel fundamental na criação de scripts Bash eficientes e na automação de tarefas no Linux e em outros sistemas Unix.
Ao compreender como usar esses operadores e combinar expressões condicionais, você pode criar scripts poderosos que tomam decisões com base em diferentes condições. Lembre-se de que a prática é essencial para aperfeiçoar suas habilidades em Bash, e a documentação oficial do Bash é uma excelente fonte de referência para aprender mais sobre esses operadores e suas nuances.
Continue explorando e experimentando com Bash para aprimorar suas habilidades de script e tornar suas tarefas de administração de sistemas mais eficientes.