Declarações IF

Introdução ao Bash Scripting

Alex Scriven

Data Scientist

Uma IF básica

Uma declaração IF básica em Bash tem esta estrutura:

if [ CONDITION ]; then

# SOME CODE
else # SOME OTHER CODE
fi

Duas dicas:

  • Espaços entre colchetes e os elementos da condição (primeira linha)
  • Ponto e vírgula após o colchete de fechamento ];
Introdução ao Bash Scripting

IF com strings

Podemos fazer uma comparação de string simples em um IF:

x="Queen"

if [ $x == "King" ]; then
echo "$x is a King!"
else echo "$x is not a King!" fi
Queen is not a King!

Você também pode usar != para "diferente de"

Introdução ao Bash Scripting

IF aritméticos (opção 1)

IF aritméticos podem usar a estrutura de parênteses duplos:

x=10

if (($x > 5)); then echo "$x is more than 5!" fi
10 is more than 5!
Introdução ao Bash Scripting

IF aritméticos (opção 2)

IF aritméticos também podem usar colchetes e uma flag aritmética em vez de (>, <, =, != etc.):

  • -eq para "igual a"
  • -ne para "diferente de"
  • -lt para "menor que"
  • -le para "menor ou igual a"
  • -gt para "maior que"
  • -ge para "maior ou igual a"
Introdução ao Bash Scripting

Exemplo de IF aritmético

Aqui recriamos o último exemplo usando colchetes:

x=10
if [ $x -gt 5 ]; then
    echo "$x is more than 5!"
fi
10 is more than 5!
Introdução ao Bash Scripting

Outras flags condicionais do Bash

O Bash também tem várias flags para arquivos, como:

  • -e se o arquivo existir
  • -s se o arquivo existir e tiver tamanho maior que zero
  • -r se o arquivo existir e for legível
  • -w se o arquivo existir e for gravável

E várias outras:

Introdução ao Bash Scripting

Usando AND e OR no Bash

 

Para combinar condições (AND) ou usar OR no Bash, use:

  • && para AND
  • || para OR
Introdução ao Bash Scripting

Múltiplas condições

No Bash você pode encadear condicionais assim:

x=10
if [ $x -gt 5 ] && [ $x -lt 11 ]; then
    echo "$x is more than 5 and less than 11!"
fi

Ou usar colchetes duplos:

x=10
if [[ $x -gt 5 && $x -lt 11 ]]; then
    echo "$x is more than 5 and less than 11!"
fi
Introdução ao Bash Scripting

IF e programas de linha de comando

Você também pode usar muitos programas de linha de comando direto na condição, removendo os colchetes.

Por exemplo, se o arquivo words.txt contiver "Hello World!":

if grep -q Hello words.txt; then
    echo "Hello is inside!"
fi
Hello is inside!
Introdução ao Bash Scripting

IF com shell dentro do shell

Ou você pode chamar um shell dentro do shell para a condição.

Vamos reescrever o exemplo anterior; o resultado será o mesmo.

if $(grep -q Hello words.txt); then
    echo "Hello is inside!"
fi
Hello is inside!
Introdução ao Bash Scripting

Vamos praticar!

Introdução ao Bash Scripting

Preparing Video For Download...