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.
Um comentário em “Introdução ao Shell Script”