Introdução ao Bash Scripting
Alex Scriven
Data Scientist
Uma declaração IF básica em Bash tem esta estrutura:
if [ CONDITION ]; then# SOME CODEelse # SOME OTHER CODEfi
Duas dicas:
];Podemos fazer uma comparação de string simples em um IF:
x="Queen"if [ $x == "King" ]; thenecho "$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"
IF aritméticos podem usar a estrutura de parênteses duplos:
x=10if (($x > 5)); then echo "$x is more than 5!" fi
10 is more than 5!
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"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!
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ávelE várias outras:
Para combinar condições (AND) ou usar OR no Bash, use:
&& para AND|| para ORNo 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
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!
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