Introdução ao Shell Script - Baseado no livro de Ken O. Burtch
Esse artigo foi elaborado tendo como base, o livro "Scripts de Shell Linux com Bash" de Ken O. Burtch. Abordando os tópicos essenciais para começar a criar scripts. Ensinando os conceitos básicos para criação de laço de repetição, estruturas condicionais, funções, operações aritméticas, scripts bem comportados, entre outras.
Parte 5: Funções de shell
As funções são uma forma de inserir pequenos subscripts em um script. Como scripts separados, as funções podem ser usadas para dividir um script complexo em tarefas separadas e com nome, para que, com isso, melhorar a legibilidade.
Pontos importantes:
Exemplo 01:
No exemplo 01, a variável enviada para a função é identificada como $1, se fossem duas variáveis a ser enviadas, teria o $2, e assim por diante
Exemplo 02:
Nesse segundo exemplo, declarou duas como globais. Teste o programa para entender melhor o que ocorre.
Cabeçalho :: O cabeçalho define que tipo de script, quem o escreveu, qual a sua versão e quais suposições, ou opções, de shell bash ele faz. A primeira linha é o cabeçalho, começa com #!, assim identifica o tipo de script. O GNU/Linux usa essa informação para iniciar o programa certo para executar o script.
Normalmente é esse: #!bin/bash
Exemplo:
Declarações globais :: Todas as declarações que aplicam a todo o script, devem ser feitas no topo dele.
Exemplo:
Verificação de sanidade :: Antes que um script execute alguma declaração, é preciso verificar que todos os arquivos necessários estejam acessíveis. Todos os comandos requisitados devem ser executáveis e armazenados nas localizações esperadas.
Estas verificações são, às vezes, chamadas de verificação de sanidade, porque não deixam o script começar sua tarefa principal, a não ser que o computador esteja em um estado conhecido, ou "são".
Exemplo:
Script principal :: Quando você tiver verificado que o sistema está são, o script poderá continuar a executar seu trabalho.
Exemplo:
Limpeza :: Quaisquer arquivos temporários devem ser apagados, e o script retorna um código de estado para a pessoa, ou programador, que o esteja executando.
Exemplo:
Pontos importantes:
- Da mesma forma que variáveis, as funções devem ser declaradas antes que possam ser usadas.
- Em vez de declare, as funções são declaradas usando o comando function.
- Cada função tem um nome, e as declarações que a compõem, ficam dentro de chaves.
Exemplo 01:
#!/bin/bash
function BoasVindas(){
printf "\n\n Seja Bem Vindo $1 \n\n"
}
printf "\n Digite seu nome: \t"
read NOME
BoasVindas "$NOME"
function BoasVindas(){
printf "\n\n Seja Bem Vindo $1 \n\n"
}
printf "\n Digite seu nome: \t"
read NOME
BoasVindas "$NOME"
No exemplo 01, a variável enviada para a função é identificada como $1, se fossem duas variáveis a ser enviadas, teria o $2, e assim por diante
Exemplo 02:
#!/bin/bash
function mostraMensagem() {
declare -g a b
a="$1"
b='Hello World!'
}
mostraMensagem 'Olá Mundo!'
printf "\n %s" "$b"
function mostraMensagem() {
declare -g a b
a="$1"
b='Hello World!'
}
mostraMensagem 'Olá Mundo!'
printf "\n %s" "$b"
Nesse segundo exemplo, declarou duas como globais. Teste o programa para entender melhor o que ocorre.
Script bem comportado
Um script bash bem estruturado, tem que conter os cinco itens abaixo:- Cabeçalho
- Declarações globais
- Verificação de sanidade
- Script principal
- Limpeza
Cabeçalho :: O cabeçalho define que tipo de script, quem o escreveu, qual a sua versão e quais suposições, ou opções, de shell bash ele faz. A primeira linha é o cabeçalho, começa com #!, assim identifica o tipo de script. O GNU/Linux usa essa informação para iniciar o programa certo para executar o script.
Normalmente é esse: #!bin/bash
Exemplo:
#!/bin/bash
#Esvaziar os discos se ninguém estiver no computador
#Calebe B. Oliveira
#Versão
#Esvaziar os discos se ninguém estiver no computador
#Calebe B. Oliveira
#Versão
Declarações globais :: Todas as declarações que aplicam a todo o script, devem ser feitas no topo dele.
Exemplo:
declare -rx who="/usr/bin/who"
declare -rx sync="/bin/sync"
declare -rx wc="/usr/bin/wc"
declare -rx sync="/bin/sync"
declare -rx wc="/usr/bin/wc"
Verificação de sanidade :: Antes que um script execute alguma declaração, é preciso verificar que todos os arquivos necessários estejam acessíveis. Todos os comandos requisitados devem ser executáveis e armazenados nas localizações esperadas.
Estas verificações são, às vezes, chamadas de verificação de sanidade, porque não deixam o script começar sua tarefa principal, a não ser que o computador esteja em um estado conhecido, ou "são".
Exemplo:
if test ! -x "$who" ; then
printf "O comando who não está disponível abortando \ n"
exit 192
fi
printf "O comando who não está disponível abortando \ n"
exit 192
fi
Script principal :: Quando você tiver verificado que o sistema está são, o script poderá continuar a executar seu trabalho.
Exemplo:
declare -i N
function ExibeNaTela(){
for(( CONT=0 ; CONT<$1 ; CONT++ )) ; do
printf "\n %s" "$2"
done
}
printf "\n Digite um valor para ser exibido \t"
read S
printf "\n Digite a quantidade de vezes que a mensagem deverá ser exibida \t"
read N
ExibeNaTela "$N" "$S"
function ExibeNaTela(){
for(( CONT=0 ; CONT<$1 ; CONT++ )) ; do
printf "\n %s" "$2"
done
}
printf "\n Digite um valor para ser exibido \t"
read S
printf "\n Digite a quantidade de vezes que a mensagem deverá ser exibida \t"
read N
ExibeNaTela "$N" "$S"
Limpeza :: Quaisquer arquivos temporários devem ser apagados, e o script retorna um código de estado para a pessoa, ou programador, que o esteja executando.
Exemplo:
exit 0
Excelente trabalho!