Categorias
Desenvolvimento

Introdução ao Shell Script

O que é Shell Script.

Um script é um programa ou mesmo uma sequência de instruções, que são executadas ou interpretadas por outro programa e não diretamente pelo processador do computador. Algumas linguagens conhecidas como PHP e JavaScript  por exemplo, são linguagens de script ou seja elas não são compiladas mas sim interpretadas por programas que estão instalados no computador.

Assim um script de shell é um arquivo que possui uma série de comandos. O shell realiza a interpretação deste arquivo, e executa os comandos como se eles tivessem sido inseridos diretamente pelo terminal de linha de comando. No shell Script é possível utilizar vários elementos que já estamos familiarizados em outras linguagens, abaixo vamos ver alguns destes elementos.

Iniciando um Script Shell.

Para iniciar um script shell, abra o terminal linux e crie o arquivo primeiroscript.sh

touch primeiroscript.sh

Abra o arquivo com o editor de texto da sua escolha, é insira o seguinte código:

#!/bin/bash

echo "Primeiro Script Shell"

A primeira linha indica qual interpretador o script irá utilizar na execução. O segundo é o comando echo que imprime texto no terminal. Depois disso salve e feche o arquivo. No terminal utilize o seguinte comando para tornar o arquivo executável:

chmod +x primeiroscript.sh

Depois disso execute seu primeiro Shell Script:

./primeiroscript.sh 

O resultado será:

Primeiro Script Shell

Variáveis no Shell Script

Para criar uma variável no Shell Script, basta digitar o nome da variável seguida de igual com o dado que será atribuído a variável:

#!/bin/bash

primeiravariavel="Primeira variável no Shell Script"

echo $primeiravariavel

Acima estamos criando uma variável chamada primeriavariavel e estamos atribuindo a ela o texto: “Primeira variável no Shell Script”. Depois estamos imprimindo o conteúdo desta variável com o comando echo. Para utilizar o conteúdo de uma variável, deve ser colocado o símbolo de $ antes da variável.

Uma variável do shell script não possuí tipos como: double, char, int, float, etc. Tudo é tratado como string. Também pode ser atribuído a variáveis saída de comandos.

#!/bin/bash

primeiravariavel="Primeira variável no Shell Script"

segundavariavel=3000

terceiravariavel=$(pwd)

quartavariavel=$(ls)

echo $primeiravariavel

echo $segundavariavel

echo "Você está no diretório: $terceiravariavel"

echo "Neste diretório existe os seguintes arquivos: $quartavariavel"

Acima declaramos uma variável com um texto, outra com um número, uma recebendo o retorno do comando pwd que informa em qual diretório se está no momento e a última recebendo o retorno do comando ls, que lista os arquivos de um diretório. Depois imprimimos o conteúdo de cada variável.

IF, elif e else no Shell Script

O shell script também possui a estrutura de condição if, que serve para testar uma condição. Temos o elif que realiza um novo teste em sequência e o else que caso nenhum dos testes anteriores seja satisfeito a execução vai para ele. Normalmente em outras linguagens, realizamos testes com os seguintes operadores:

  • != Diferente de
  • == Igual à
  • > Maior que
  • < Menor que
  • >= Maior ou igual à
  • <= Menor ou igual à

Mas no shell script temos os seguintes operadores.

Operadores para testar números:

  • ne Diferente de
  • -eq Igual à
  • -gt Maior que
  • -lt Menor que
  • -ge Maior ou igual à
  • -le Menor ou igual à

Operadores para testar string:

  • != Diferente de
  • = Igual à
  • -z String existe e é vazia
  • -n String existe e não é vazia

Operadores para testar diretórios e arquivos:

  • -f Arquivo existe, não é um diretório
  • -s Arquivo existe, não vazio
  • -w Arquivo, com permissão de escrita
  • -d Diretório existe
  • -x Arquivo, com permissão de execução 
  • -r Arquivo, com permissão de leitura

Exemplo de utilização do if, elif e else:

#!/bin/bash

laranjas=8

if [ $laranjas -lt 10 ]
then
        echo "Tenho menos que 10 laranjas"
elif [ $laranjas -gt 10 ]
then
        echo "Tenha mais que 10 laranjas"
else
        echo "Tenho 10 laranjas"
fi

Acima declaramos uma variável chamada laranja com o valor 8 atribuído a ela. Depois testamos se ela é menor que 10, se for é impresso: “Tenho menos que 10 laranjas”. Também testamos se ela é maior que 10, se for é impresso: “Tenha mais que 10 laranjas” ,caso nenhuma das duas condições seja satisfeita é impresso: “Tenho 10 laranjas”.

FOR no Shell Script

O shell script também possui a estrutura de repetição FOR, que cria um loop que irá repetir até que uma condição definida seja satisfeita. Exemplo de for imprimindo de 1 à 5:

#!/bin/bash

for i in 1 2 3 4 5;
do
        echo $i;
done

WHILE no Shell Script

Muito semelhante ao FOR a estrutura de repetição WHILE cria um loop que irá repetir até que a condição colocada seja verdade. Neste exemplo vamos ler um arquivo linha por linha até que ele termine ou seja, enquanto a condição read seja verdadeira. Primeiro crie o arquivo teste.txt e insira o seguinte conteúdo nele:

Linha 1
Linha 2
Linha 3
Linha 4
Linha 5
Linha 6
Linha 7

Depois coloque no shell script o seguinte código:

#!/bin/bash

while read linha 
do
        echo $linha
done < teste.txt

Parâmetros para scripts

No Shell Script podemos passar parâmetros para o nosso script na hora da execução. Para recuperar estes parâmetros utilizamos variáveis especiais que são a sequência numérica. Na variável $0 temos o nome do script, na variável $1 o primeiro parâmetro, na $2 o segundo parâmetro e assim sucessivamente até $9. Exemplo de utilização:

#!/bin/bash

echo "Oĺá você executou o script: $0"

echo "Seu nome é: $1"

echo "Seu sobrenome é: $2"

Rode o script da seguinte maneira:

./meuscript.sh Anderson Irias

O resultado será o seguinte:

Oĺá você executou o script: ./meuscript.sh
Seu nome é: Anderson
Seu sobrenome é: Irias

Redirecionando a saída

Para finalizar neste artigo introdutório ao shell script, vamos ver como redirecionar a saída ou seja a resposta de um comando para um arquivo. No shell script é possível fazer isto utilizando: > e >>

> Apaga o conteúdo do arquivo e grava a saída.

>> Mantém o conteúdo do arquivo e grava a saída no final do arquivo.

Exemplo de utilização:

Primeiro crie o arquivo teste.txt e insira o seguinte conteúdo nele:

Arquivo para teste.

Depois coloque no shell script o seguinte código:

#!/bin/bash

echo "Acrescenta ao arquivo" >> teste.txt

Depois teste o outro:

#!/bin/bash

echo "Apaga tudo e escreve" > teste.txt

Assim finalizamos nossa introdução sobre shell script, com isso já é possível criar scripts básicos que podem ser úteis no dia a dia.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *