Buscar

Apostila Shell Script - Atualizada - 052020

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

2020 
LÓGICA DE PROGRAMAÇÃO 
2 
 
Conteúdo 
1. Introdução ..................................................................................................................... 4 
1.1. Sobre algoritmos e programas ...................................................................................... 4 
1.2. O que é um algoritmo? .................................................................................................. 4 
1.3. Representação de algoritmos ........................................................................................ 4 
1.4. Algoritmos naturais ....................................................................................................... 4 
1.5. Fluxograma convencional .............................................................................................. 4 
1.6. Diagrama de blocos ....................................................................................................... 6 
1.7. Pseudocódigo ou metalinguagem ................................................................................. 6 
1.8. O que é um programa? .................................................................................................. 7 
1.9. Programa de computador .............................................................................................. 8 
1.10. Dados armazenados em variáveis; ................................................................................ 8 
1.11. Variáveis tipadas ............................................................................................................ 8 
2. Codificando em shell script ............................................................................................ 9 
2.1. A declaração de variáveis em shellscript ....................................................................... 9 
3. Instruções de escrita e leitura de dados no shellscript ............................................... 10 
3.1. Procedimentos para leitura de dados ......................................................................... 10 
3.2. Procedimentos para escrita de dados ......................................................................... 10 
3.2.1. Concatenação de informações para apresentação ..................................................... 10 
3.3. Procedimentos de decisão usando comando if (se) .................................................... 11 
3.3.1. Opções do comando test ou [ ] .................................................................................... 11 
3.4. Procedimento de decisão usando comando case (caso) ............................................. 12 
3.5. Procedimento de decisão usando comando select (seleção) ...................................... 13 
3.6. Comando break ............................................................................................................ 14 
4. Loops condicionais ....................................................................................................... 14 
4.1. Procedimento de repetição utilizando o comando for................................................ 15 
4.1.1. Outra sintaxe para o comando for ............................................................................... 16 
4.2. Procedimento de repetição utilizando o comando while ........................................... 16 
5. Arrays ........................................................................................................................... 18 
5.1. Acesso individual aos valores armazenados no array ................................................. 18 
5.2. Acesso sequencial aos valores armazenados no array ................................................ 19 
5.3. Gravando dados no array ............................................................................................ 19 
6. Entrada, saída e saída de erro padrão. ........................................................................ 20 
6.1. Redirecionamentos ...................................................................................................... 20 
3 
 
6.2. Redirecionamentos de saída padrão; .......................................................................... 20 
6.3. Redirecionamentos de entrada padrão ....................................................................... 20 
6.4. Anexar saída ................................................................................................................. 21 
7. Funções ........................................................................................................................ 22 
7.1. Declarando funções ..................................................................................................... 22 
7.2. Outros exemplos com funções .................................................................................... 23 
7.3. Acesso a variáveis ........................................................................................................ 24 
 
 
 
 
4 
 
1. INTRODUÇÃO 
1.1. SOBRE ALGORITMOS E PROGRAMAS 
Após o estudo do problema, análise das diversas possibilidades de Solução e a escolha da 
melhor delas, cabe agora a tarefa de escrever um programa que implemente esta solução. 
Antes, contudo, é preciso saber a diferença entre um algoritmo em um programa, 
1.2. O QUE É UM ALGORITMO? 
Um algoritmo é uma seqüência extremamente precisa de instruções que, quando lida e 
executada por outra pessoa, produz o resultado esperado, isto é, a Solução de um problema. 
Esta seqüência de instruções é nada mais nada menos que um registro escrito da seqüência de 
passos necessários que devem ser executados para manipular informações, ou dados, para se 
chegar à resposta do problema. Isto serve por dois motivos: 
O Através do registro se garante que não haverá necessidade de se redescobrir a solução 
quando muito tempo tiver passado e todos tiverem esquecido o problema; 
O Pode ser necessário que outra pessoa execute a solução de um determinado problema, mas 
através de instruções precisas, de maneira que não haja erros durante o processo. 
Nestes casos é necessário um algoritmo para representar a Solução do problema. 
1.3. REPRESENTAÇÃO DE ALGORITMOS 
Desde o conhecimento dos algoritmos que tivemos necessidade de encontrar uma forma de 
representá-los, e então apareceram formas de representá-los. São eles o Fluxograma 
Convencional, Diagrama de Blocos e Pseudocódigo ou Metalinguagem. 
1.4. ALGORITMOS NATURAIS 
Os algoritmos naturais podem ser entendidos como algoritmos usados no dia-a-dia, descritos 
numa linguagem natural, como por exemplo, uma simples receita de Culinária, ou a forma 
como trocamos o pneu da nossa viatura ou a lâmpada do nosso escritório. Os algoritmos são 
usados no dia-a-dia de forma a poder esquematizar a execução de uma determinada tarefa. 
Para que um algoritmo seja completo é fundamental descrevê-lo de forma detalhada, passo a 
passo, de modo a que possa ser executado por qualquer pessoa. 
1.5. FLUXOGRAMA CONVENCIONAL 
O Fluxograma Convencional é uma representação gráfica de algoritmos em que diferentes 
formas geométricas implicam diferentes ações, instruções ou comandos. Esta propriedade 
facilita a compreensão de um algoritmo no seu todo. 
5 
 
Os fluxogramas convencionais têm implicações com o nível físico da implementação de um 
algoritmo. Figuras geométricas diferentes São usadas para representar operações de entrada e 
saída de dados, realizadas em diversos dispositivos, utilizando esta abordagem apenas a 
podemos utilizar a nível lógico das instruções. 
 
Figura 1: Símbolos utilizados na construção de fluxogramas 
De um modo geral o fluxograma resume-se a um símbolo inicial, onde a execução do algoritmo 
começa, os símbolos seguintes fazem parte dos passos do algoritmo e o símbolo final, onde a 
execução do algoritmo pára. Partindo do símbolo inicial existe sempre apenas um ultimo 
caminho que pode ser seguido, representando assim uma única seqüência de passosque 
resolvem a questão proposta. 
 
Figura 2: Exemplo de fluxograma computacional 
6 
 
 
1.6. DIAGRAMA DE BLOCOS 
Diagrama de Blocos que é também conhecido por Diagrama de Chapin, trata-se de uma forma 
gráfica específica que permite o desenvolvimento de algoritmos estruturados através de 
Símbolos retangulares que acabam por formar o Bloco de Solução. 
Os símbolos básicos para a representação de um Diagrama de Blocos são os seguintes: 
 
Figura 3: Estrutura de seqüência de procedimentos 
 
Figura 4: Estrutura de repetição de procedimentos 
 
Figura 5: Estrutura de seleção de procedimentos 
1.7. PSEUDOCÓDIGO OU METALINGUAGEM 
Esta é a forma de representação de um algoritmo que apresenta uma descrição mais 
detalhada e precisa. Este tipo de representação assemelha-se muito a forma de como os 
programas são escritos, basicamente esta forma de representação baseia-se na descrição de 
todos os passos e detalhes da seqüência numa linguagem conhecida, e que depois apenas terá 
de ser convertida para a sintaxe de qualquer linguagem de programação. 
A representação de um algoritmo usando o método de Pseudocódigo ou Metalinguagem pode 
é a Seguinte: 
 
Figura 6: Representação de algoritmo através de pseudocódigo 
7 
 
1.8. O QUE É UM PROGRAMA? 
Um programa é a codificação em alguma linguagem formal que garanta que os passos do 
algoritmo sejam executados da maneira como se espera por quem executa as instruções. Veja 
o exemplo abaixo, ele apresenta o algoritmo de Receita de um bolo de chocolate: 
Algoritmo de Receita de um bolo de chocolate 
Bater duas claras em neve; 
Adicionar duas gemas; 
Adicionar uma Xícara de açúcar; 
Adicionar duas colheres de margarina; 
Adicionar uma xícara farinha de trigo; 
Adicionar uma Colher de chá de fermento; 
Adicionar uma xícara de chocolate em pó; 
Levar à batedeira até obter uma massa homogênea; 
Colocar numa forma e levar ao forno em fogo brando. 
Vamos imaginar, a título de ilustração, que é a primeira vez que a pessoa entra na cozinha em 
toda a sua vida e resolve fazer um bolo de chocolate seguindo o algoritmo apresentado. O 
algoritmo foi escrito por um cozinheiro para Ser executado por outro cozinheiro, o que não é o 
caso, pois a pessoa é inexperiente em cozinha e não sabe o que significa "bater as claras em 
neve". Significa que o novato vai ficar Sem o bolo. 
O novato precisaria de algo mais detalhado, isto é, de instruções meticulosas de Como Se 
obtém claras em neve. Para este cozinheiro Seria neceSSário um outro código adicional, veja o 
exemplo abaixo: 
Algoritmo para fazer claras em neve. 
a. Início 
b. Repita os três seguintes passos: 
c. Pegue um ovo. 
d. Quebre o ovo. 
e. Separe a clara da gema. 
f. Coloque Somente a clara em um prato fundo. 
g. Até que todos os ovos tenham sido utilizados. 
h. Pegue um garfo. 
i. Mergulhe a ponta do garfo no prato. 
j. Repita os seguintes passos: 
k. Bata a clara com o garfo por um tempo. 
l. Levante o garfo 
m. Observe se a espuma produzida fica presa no garfo 
n. Quando a espuma ficar presa no garfo, pare. 
o. Neste ponto suas claras em neve estão prontas. 
p. Fim. 
8 
 
1.9. PROGRAMA DE COMPUTADOR 
Programa de computador é a denominação que se dá a um conjunto organizado de instruções 
em linguagem natural ou codificada, contida em suporte físico de qualquer natureza, de 
emprego necessário em máquinas automáticas de tratamento da informação, dispositivos, 
instrumentos ou equipamentos periféricos, baseados em técnica digital ou análoga, para fazê-
los funcionar de modo e para fins determinados. (Artigo 1o da Lei de Proteção de Programa de 
Computador). 
 
Figura 7: Exemplo de código em Shell Script 
 
Figura 8: Fragmento de código da Linguagem C 
1.10. DADOS ARMAZENADOS EM VARIÁVEIS; 
Variáveis e constantes são os elementos básicos que um programa manipula. Uma Variável é 
um espaço reservado na memória do Computador para armazenar um tipo de dado 
determinado. 
Variáveis devem receber nomes para poderem ser referenciadas e modificadas quando 
necessário. Um programa deve conter declarações que especificam de que tipo são as 
variáveis que ele utilizará e às vezes um valor inicial. 
1.11. VARIÁVEIS TIPADAS 
Linguagens tiradas (ou linguagens fortemente tipificadas) são aquelas em que todas as 
variáveis têm um tipo específico (o tipo serve para indicar qual o tio de dado que está 
armazenado) seus tipos são importantes para a linguagem.
9 
 
Normalmente as linguagens fortemente tipadas também são estaticamente tipadas, o que 
significa que o uma vez que a variável foi declarada com um tipo ela será até o seu tipo até a 
finalização do programa e também normalmente possuem declaração explicita de tipo onde 
tipo da variável deve ser especificado logo na sua declaração. Uma vez que tais linguagens 
levam em consideração o tipo, operações entre tipos diferentes o ocasionam erro. 
 
Figura 9: Exemplo de utilização de variáveis em pseudocódigo 
 
Figura 10: Fragmento de código demonstrando a declaração e variáveis na Linguagem C 
2. CODIFICANDO EM SHELL SCRIPT 
2.1. A DECLARAÇÃO DE VARIÁVEIS EM SHELLSCRIPT 
Uma variável é um label (nome) que armazena um valor para ser utilizado posteriormente no 
Código. Seu uso evita repetições de Valores por parte do programador e torna o código mais 
informativo, limpo e eficiente. 
A linguagem do Shell não é tipada, ou Seja, pode-se armazenar qualquer tipo de valor em uma 
variável, desde Strings a números. 
Para declará-las a construção do nome da variável deve observar o seguinte: 
 nomeVariavel=Valor 
 nome_da_Variavel=Valor 
Onde: 
 nome_da_variavel: Sequencia de caracteres que deve começar por qualquer letra 
maiúscula ou minúscula ou underScore (); 
 Valor: qualquer dado que deva Ser atribuído à variável; 
 O Shell Script é uma linguagem case sensitive, ou seja, nele há diferença entre 
"nomeUser" e "nomeuser"; 
10 
 
 Não são permitidos espaços antes nem depois do caractere =; 
 Apenas caracteres alfanuméricos podem ser utilizados como identificadores válidos de 
variáveis; 
 Os valores do tipo string que contenham espaços devem ser especificados entre aspas 
como no exemplo em baixo. 
Exemplos: 
Ola="bom dia" 
echo "$ola Paulo" 
echo "$ola Paulo" #Texto recebido da variável ola 
3. INSTRUÇÕES DE ESCRITA E LEITURA DE DADOS NO SHELLSCRIPT 
3.1. PROCEDIMENTOS PARA LEITURA DE DADOS 
Comando utilizado "read" 
Exemplos de utilização: 
 read nomeUser 
 read numCarro 
 read casaPolice 
Não esquecer que no momento da atribuição de valores para as variáveis, não é utilizado o "$" 
e para utilizar ou acessar o valor armazenado devemos utilizar o “$” antes do nome da 
variável. 
3.2. PROCEDIMENTOS PARA ESCRITA DE DADOS 
Comando utilizado "echo" 
Exemplos de utilização: 
o echo “Texto de teste” 
o echo “Junta texto e variável $valorPagar $txt” 
 
Atenção: Não esquecer que para uma variável ser apresentada ou utilizada em 
cálculos ela deverá ter recebido os valores antes. 
3.2.1. CONCATENAÇÃO DE INFORMAÇÕES PARA APRESENTAÇÃO 
Concatenação é um termo usado em programação para designar a operação de juntar o 
conteúdo de duas sequencias de caracteres. Por exemplo, considerando as strings "casa" e 
"mento" a concatenação da primeira com a segunda gera a string "casamento". 
Observar que uma nova string é criada, o resultado é diferente de se ter ao final a exibição de 
casamento, mas ela ser obtida através da impressão seqüencial das duas variáveis, 
Exemplo de código básico 
#!/bin/bash 
echo "Digite seu nome" 
11 
 
read nome 
 
echo "Digite sua idade" 
read idade 
 
echo "Seu nome é Snome e sua idade é $idade" 
3.3. PROCEDIMENTOS DE DECISÃO USANDO COMANDO IF (SE) 
Comando utilizado "if" 
Exemplos de utilização: 
 Permite executar uma ou mais instruções se o valor inserido atender ao teste 
lógico proposto; 
 Exemplo da estrutura geral: 
 
Figura 11: Estrutura geral da instrução complexa 
 
Figura12: Exemplo de código utilizando o comando IF 
3.3.1. OPÇÕES DO COMANDO TEST OU [ ] 
 
 
12 
 
 
Exemplo: 
 
Figura 13: Código funcional utilizando a instrução if 
3.4. PROCEDIMENTO DE DECISÃO USANDO COMANDO CASE (CASO) 
Comando utilizado "case" 
Exemplos de utilização: 
 Permite executar uma ou mais instruções se o valor informado pelo usuário 
estiver entre um dos valores esperados; 
 Exemplo da estrutura geral: 
 
Outro exemplo: 
13 
 
 
3.5. PROCEDIMENTO DE DECISÃO USANDO COMANDO SELECT (SELEÇÃO) 
Comando utilizado "select" 
Exemplos de utilização: 
 Exibe um menu numerado, os valores devem ser listados pelo programador e 
escolhidos pelo usuário. 
 Exemplo da estrutura geral do programa. 
 
Figura 14: Estrutura do comando select 
Outro exemplo: 
 
14 
 
3.6. COMANDO BREAK 
O comando ou declaração break é uma forma simples de sair de um loop em execução, 
interrompendo-a em um momento definido. Pode ser utilizado em laços for, while e do while. 
 
Figura 15: Código preparado para exemplificar a utilização do comando break 
Também é possível a utilização deste comando em loops aninhados, e através dele escolher 
qual loop será interrompido. Para isso, podemos usar o comando break de acordo com a 
seguinte sintaxe: 
break n 
onde o valor n indica o nível do loop que será interrompido. Por padrão, esse valor é 1, o que 
significa que o loop interrompido é o loop onde a instrução break se encontra. Se ajustarmos o 
valor de n para, por exemplo, 2, o comando break irá interromper a execução do próximo 
nível, que corresponde ao loop externo em relação ao atual, e assim sucessivamente para 
estruturas de repetição aninhadas mais complexas. 
 
Figura 16: Código não funcional para exemplificar a utilização do break em loops aninhados 
4. LOOPS CONDICIONAIS 
Loops (repetições) são muito úteis para ficar iterando sobre determinadas ações até que uma 
condição seja satisfeita e interrompa o laço(conjunto de instruções que fica entre o início e o 
fim do marcador do loop). 
 
15 
 
 
4.1. PROCEDIMENTO DE REPETIÇÃO UTILIZANDO O COMANDO FOR 
O comando for pode ser utilizado quando se quer criar um laço (conjunto de repetições) e se 
sabe a quantidade de vezes se deseja repetir o loop. A quantidade pode ser previamente 
definida, digitada pelo usuário durante a execução do script, obtida por um processo do 
próprio script ou definida pela quantidade de itens indicada no loop. 
 
Figura 17: Uma forma de estruturar o comanto "for". 
Devido a grande variedade de formas de utilização o comando pode ser montado também de 
diversas formas, seguem abaixo algumas destas formas: 
 
Figura 18: Neste exemplo todos os elementos da lista são atribuídos à variável, um por vez. 
 
Figura 19: Aqui todos os elementos da lista (neste caso strings) são atribuídos à variável, um por vez. 
 
Figura 20: Esta estrutura permite criar uma seqüência automática. 
 
Figura 21: Esta estrutura também permite a criação uma seqüência automática, só que há um passo de 2 em 2. 
 
Figura 22: Funciona como demonstrado na figura 19, só que em versões mais antigas de shell script 
 
Figura 23: Funciona como demonstrado na figura 20, só que em versões mais antigas de shell script. 
16 
 
4.1.1. OUTRA SINTAXE PARA O COMANDO FOR 
Essa forma de construção de loop através do comando for compartilha uma herança comum 
com a linguagem de programação C. É caracterizada por uma expressão de controle de loop de 
três parâmetros, ela consiste em um inicializador (EXP1*), um teste ou condição de loop 
(EXP2*) e uma expressão de contagem (EXP3*). 
*para exemplo 
 
Figura 24: Estrutura geral do for do shell script semelhante a linguagem C 
 
Figura 25: Exemplo de utilização do comando for do shell script semelhante a linguagem C. 
4.2. PROCEDIMENTO DE REPETIÇÃO UTILIZANDO O COMANDO WHILE 
O comando while pode ser utilizado quando se quer criar um laço (conjunto de repetições) e 
não se tem a necessidade de definir uma quantidade específica de vezes de repetições. No 
caso o while o loop se manterá enquanto a condição utilizada para comparação obtiver 
resultado true (verdadeiro). 
 
Figura 26: Forma geral do comando while. 
 
Figura 27: Fragmento de código, exemplo de utilização do comando while. 
 
17 
 
 
Figura 28: Exemplo de utilização do comando while, o loop repete enquanto o valor informado for maior que 10. 
 
 
 
 
 
 
 
18 
 
5. ARRAYS 
 
 
 
5.1. Acesso individual aos valores armazenados no array 
 
Figura 29: A forma de impressão apresenta aqui permite o acesso a apenas uma posição por vez. 
 
19 
 
5.2. Acesso sequencial aos valores armazenados no array 
 
 
Figura 30: A forma de impressão apresentada aqui permite um acesso sequencial a diversos elementos do array 
 
 
Figura 31: Outra forma de acesso sequencial, esta forma permite a obtenção automática do número máximo de 
elementos do array. 
5.3. Gravando dados no array 
 
Figura 32: O exemplo acima mostra o processo de entrada de dados num array e logo abaixo a impressão de seus 
dados. 
 
Figura 33: Este exemplo, assim como o anterior (figura 32), mostra o processo de entrada de 
dados, no entanto a impressão dos dados aqui tem seu limite definido de forma dinâmica. 
20 
 
6. ENTRADA, SAÍDA E SAÍDA DE ERRO PADRÃO. 
Um programa/comando quando executado necessita de pontos para a entrada padrão, a saída 
padrão e a saída de erro padrão de dados. Estes pontos permitem a comunicação do 
comando/programa e também podem ser redirecionados para outros dispositivos. 
 Entrada padrão: 
Lugar de onde o programa recebe informações, por padrão do teclado; 
 Saída padrão: 
Lugar onde o programa pode mandar informações, por padrão é enviado para a tela; 
 Saída de erro padrão: 
Lugar onde o programa pode mandar mensagens de erro, por padrão é enviado 
também para a tela; 
6.1. Redirecionamentos 
Caso seja necessário gravar as mensagens de um programa/comando (aquilo que ele 
exibe na tela), as saídas em um arquivo afim de não perder informação caso o 
programa seja desligado. 
6.2. Redirecionamentos de Saída Padrão; 
Permite a modificação no ponto de saída de um programa. O símbolo de 
redirecionamento de saída padrão é o (>), sua utilização se dá assim: 
 
 
 
 
 
 
 
 
 
6.3. Redirecionamentos de Entrada Padrão 
Permite a modificação no ponto de entrada de um programa. O símbolo de 
redirecionamento de entrada padrão é o (<), sua utilização se dá assim (observar que, 
apesar da estrutura do comando ser a mesma pode haver pequenos cuidados a serem 
tomados): 
 
 
 
 
 
 
 
 
 
Nos exemplos a utilização do (<) tem o 
objetivo de copiar valores armazenados em 
arquivos para variáveis. Uma vez o valor 
armazenado na variável esta pode ser 
trabalhada como qualquer outra variável. 
 
O comando ls tem a função de listar todos os 
arquivos (inclusive os ocultos) do diretório 
corrente no formato longo, a utilização do 
parâmetro –l serve para que ele apresente 
detalhes, no entanto o parâmetro “>” 
desviará a exibição do conteúdo da tela 
para o arquivo de texto com o nome 
“lista.txt”. 
 
21 
 
6.4. Anexar Saída 
Permite a modificação no ponto de saída de um programa. O símbolo para indicação 
de anexar é o (>>), sua utilização em parte é semelhante a do (>), ou seja, escreve em 
arquivo, se ele não existir cria um com o nome indicado. Mas há uma diferença, é que 
ele não apaga o conteúdo anterior, ele escreve no final do arquivo indicado. 
 
 
 
 
 
 
 
 
 
 
 
No exemplo ao lado, a impressão do texto 
“Bom dia!!” que deveria ser exibida na tela é 
direcionada para o arquivo “bomDia.txt”. A 
utilização do (>>) dentro do comando “for” 
faz com que o texto seja inserido no final do 
arquivo de texto diversas vezes 
 
22 
 
7. FUNÇÕES 
As funções podem ser consideradas pequenos blocos de scripts, elas servem para juntar 
grupos de instruções que são executados somente quando o agrupamento forchamado pelo 
nome. As funções podem ser compostas por comandos regulares utilizados no restante do 
script ou até por chamadas de outras funções. O nome relacionado ao grupo de instruções 
denominado como uma função deve ser única e obedecer as mesmas regras de construção de 
variável. 
7.1. Declarando funções 
Existem mais de uma forma de declarar funções em um script bash, segue abaixo essas 
estruturas de construção de função: 
 
 
 
 
 
 
 
 
Abaixo seguem exemplos de utilização das três formas, não há diferenças práticas entre elas se 
utilizando o interpredador bash. 
 
 
 
 
 
 
 
 
 
 
 
Forma 1 
Forma 2 
Forma 3 
23 
 
7.2. Outros exemplos com funções 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Com a utilização de funções o 
corpo do programa fica mais 
simples, menos poluído. O objetivo 
de uma função deve ser claro, ela 
deve ter a uma finalidade específica 
dentro do script. 
 
EXEMPLO 01 
 
24 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7.3. Acesso a variáveis 
No Shell todas as variáveis são por padrão definidas como globais, somente serão definidas 
como locais as variáveis que forem definidas utilizando a palavra “local” antes. Variáveis 
globais podem ser acessadas de qualquer parte do script. 
 
 
 
 
 
 
No código fornecido as funções compartilham 
as variáveis com o programa principal, a 
variável total recebe seu valor inicial no início 
do programa, tem seu valor modificado na 
função “recebeValor” e imprime seu valor na 
função “fazSoma”. 
 
EXEMPLO 02 
 
No código ao lado é possível ver a limitação do escopo da 
variável provocada pela utilização de parâmetro “local”, 
ele não permite que a variável seja acessada fora da 
função.

Continue navegando