Introdução

A utilização do shell script é algo bem comum no universo do Big Data, ele age como “cola” integrando partes heterogêneas de sistemas, executando rotinas, iniciando programas ou monitorando aplicações.

Como podemos ver, é um item importantíssimo da caixa de ferramentas de um engenheiro de dados, estendendo o alcance de ferramentas e atuando como um “coringa” dentro de sistemas e arquiteturas.

Vamos ver alguns conceitos básicos, que servirão de pavimento para coisas mais avançadas.

Exemplo básico

Basicamente, o script, é um arquivo com extensão .sh, dentro dele incluímos os comandos que queremos executar.

Ele atua de modo procedural, executando uma linha após a outra.

O exemplo abaixo verifica se um arquivo existe.

#!/bin/bash
DIR=/opt/teste-shell-script.txt
if test -f "$DIR"; then     
  echo "$DIR existe." 
fi

Para executar, devemos primeiro atribuir as devidas permissões ao arquivo (chmod +x arquivo.sh) e depois ,no diretório do arquivo, digitar : ./arquivo.sh

Aqui a saída do comando:

Esse é um exemplo bem simples de utilização, poderíamos escrever scripts bem mais complexos.

Principais Comandos

Abaixo temos alguns comandos básicos que ajudam a implementar algoritmos dentro de nossos scripts:

Declaração de variáveis.

#!/bin/bash

# String
var="Olá, Mundo!" # Não funciona assim var = "Olá, Mundo!"
echo $var
# ou
echo "Minha variável: $var"

# Numérico
a_var=1
b_var=2
c_var=$(expr $a_var + $b_var)
echo $c_var

# Array
a_array[0]="Olá"
a_array[1]=","
a_array[2]="Mundo"
a_array[3]="!"

echo "Acessando um item do array: ${a_array[0]}"
echo "Acessando o array completo: ${a_array[*]}"

Comandos de decisão e laço.

#!/bin/bash
a=2

# ---------------------------------------------
echo "if, elif e else"
# ---------------------------------------------
if [ $a -eq 2 ] 
then
    echo "Verdadeiro"
fi

# --

if [ $a -eq 2 ] 
then
    echo "Verdadeiro"
else
    echo "False"
fi

# --

if [ $a -eq 2 ] 
then
    echo "É dois"
elif [ $a -eq 3 ] 
then
    echo "É três"
else
    echo "Não sei qual é o número"
fi

# ---------------------------------------------
echo "while e break"
# ---------------------------------------------
while [ $a -lt 10 ] 
do
    if [ $a -eq 5 ]
    then
        echo "A variável ${a} é 5, saindo do loop"
        break
    else
        echo "Exibindo o valor da variável: $a"
    fi
    a=$(expr $a + 1)
done

# ---------------------------------------------
echo "case"
# ---------------------------------------------
case "$a" in    
    "1") echo "O número é 1."     
    ;;    
    "2") echo "O número é 2."     
    ;;    
    "3") echo "O número é 3."     
    ;; 
    *) echo "O numero não está entre 1 e 3."
    ;;
esac

Operadores

Abaixo os operadores que são utilizados dentro do shell script.

OperadorDescriçãoExemplo de Uso
+soma‘expr $a + $b’
subtração‘expr $a – $b’
*multiplicação‘expr $a * $b’
/divisão‘expr $a / $b’
%resto da divisão‘expr $a % $b’
=atribuiçãoa = $b
==comparação (é igual)[ $a == $b ]
!=negação da comparação (não é igual)[ $a != $b ]
Operadores Aritméticos
OperadorDescriçãoExemplo de Uso
-eqVerifica se os valores são iguais[ $a -eq $b ]
-neVerifica se os valores são diferentes[ $a -ne $b ]
-gtVerifica se o valor é maior[ $a -gt $b ]
-ltVerifica se o valor é menor[ $a -lt $b ]
-geVerifica se o valor é maior ou igual[ $a -ge $b ]
-leVerifica se o valor é menor ou igual[ $a -le $b ]
Operadores Relacionais
OperadorDescriçãoExemplo de Uso
!Operador de negação, inverte o estado de uma condição[ ! false ]
-oOperador “OU/OR”[ $a -o $b ]
-aOperador “E/AND”[ $a -a $b ]
Operadores Booleanos
OperadorDescriçãoExemplo de Uso
=Verifica se as strings são iguais[ $a = $b ]
!=Verifica se as strings são diferentes[ $a != $b ]
-zVerifica se o tamanho da string é 0[ -z $a ]
-nVerifica se o tamanho da string é diferente de 0[ -n $a ]
strVerifica se a string é vazia[ $a ]
(não há declaração explicita)
Operadores de texto
OperadorDescriçãoExemplo de Uso
-dVerifica se é um diretório[ -d $arquivo ]
-rVerifica se o arquivo tem a permissão de leitura[ -r $arquivo ]
-wVerifica se o arquivo tem a permissão de escrita[ -w $arquivo ]
-xVerifica se o arquivo tem a permissão de execução[ -x $arquivo ]
-sVerifica se o tamanho do arquivo é maior que 0[ -s $arquivo ]
-eVerifica se o arquivo existe ( também funciona em diretórios)[ -e $arquivo ]
Operadores de arquivos

Passagem de parâmetros

Também podemos passar parâmetros para dentro de nossos scripts, para isso conheço duas formas.

A primeira é passando os parâmetros diretamente na execução do arquivo .sh. Abaixo, uma implementação que recebe 3 parâmetros.

#!/bin/bash

echo $1 # - Primeiro parâmetro
echo $2 # - Segundo parâmetro
echo $3 # - Terceiro parâmetro

Como podemos ver, na imagem abaixo, podemos acessar cada parâmetro através da junção do cifrão ($) + o numero de sua posição.

A outra forma é através do comando “read -p”.

Abaixo um script com a implementação:

#!/bin/bash

read -p "Insira seu nome:" nome
echo $nome

Como podemos ver, o comando passa o valor inserido no terminal para a variavel nome.

Abaixo, como a saída é feita.

Conclusão

Eu gosto bastante de shell script, em muitos casos usei esse recurso para automatizar alguma tarefa.

Esses são passos simples, mas que servirão de pavimento para coisas mais avançadas.

Existem ainda formas de criar funções, interagir com comandos do terminal, interagir com programas e etc…

Encerro por aqui essa introdução e espero que esse conteúdo ajude 🙂

PS: Um ótimo material para estudo é o tutorialspoint pois existe ainda muitas coisas dentro desse universo.

Categorias: ShellScript

Jefferson Soares

Olá! Sou Jefferson. Trabalho com: Dados, Dashboards, SQL, SAS, Python e muito mais! Criei esse cantinho para postar alguns conhecimentos. :)

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comentários
Inline Feedbacks
View all comments