Você está na página 1de 24

Instituto Federal de Educação da Paraíba

Campus Campina Grande

Curso: Subseqüente em informática

Disciplina: LSOA

Professora: Daniela Dias

Alunos: David Franklin


Eliardo Vinícios
Esdras Oliveira

Shell Script
Índice
Introdução............................................................................................................................... 4

O que é o Shell Script ............................................................................................................. 6

Tipos de Shell ......................................................................................................................... 7

A maioria das shell comum em Linux. É shell Freeware....................................................... 9

Variáveis de ambiente .......................................................................................................... 10

Comandos de manipulação de variáveis............................................................................... 12

Aliases .................................................................................................................................. 12

Arquivos de configuração do bash ....................................................................................... 13

Shell sript - início ................................................................................................................. 14

Shell sript – Variáveis .......................................................................................................... 15

Shell sript – Comandos......................................................................................................... 16

Operadores............................................................................................................................ 17

Entrada Interativa ................................................................................................................. 17

Expressões aritméticas.......................................................................................................... 18

Estruturas condicionais......................................................................................................... 19

Estruturas de laço.................................................................................................................. 20

Comandos de controle .......................................................................................................... 22

Funções................................................................................................................................. 22

Considerações Finais ............................................................................................................ 24

Referências ........................................................................................................................... 25

3
Introdução
Os sistemas operacionais representaram para os usuários de computadores um
avanço e até mesmo uma revolução no modo como manipular de forma prática e simples o
hardware, quem já leu algum livro sobre sistemas operacionais talvez já tenha visto a
grande facilidade que tais sistemas trouxeram no que diz respeito a programar
computadores. Só pra refrescar a memória, antes de existirem tais sistemas, programadores
precisavam programar seus sistemas em linguagem de máquina, ou seja, programar era
muito difícil, não é preciso especificar como isso era feito, no entanto com o advento dos
sistemas operacionais e também o surgimento de algumas linguagens de programação que
vieram a existir até mesmo antes do que os sistemas operacionais como conhecemos hoje
essa tarefa foi ficando mais simples porém não tão fácil.
Um sistema operacional facilita a atividade de programar já que livra o programador
de lidar diretamente com hardware, ele fornece estrutura para que um programa compilador
atue traduzindo instruções, este recebe as instruções numa linguagem que obedece a certas
regras de sintaxe e que é mais facilmente entendível por humanos e repassa essa linguagem
traduzida para uma linguagem que só a máquina entende, linguagem essa chamada de
linguagem de máquina, e assim os programas são executados.
O sistema operacional livre mais conhecido é o linux, a partir de uma metodologia
de desenvolvimento pautada na colaboração de usuários no mundo inteiro esse sistema foi
crescendo e fazendo sucesso, tanto é que hoje, apesar de não ser o mais utilizado do mundo,
possui muitos usuários e é muito respeitado por sua robustez. Mas no que diz respeito ao
linux algo se destaca fortemente nesse sistema, o seu shell é considerado muito bom, tão
bom que não atua apenas como mero interpretador de comandos, este vai além, dominando
o seu shell é possível construir programas que podem facilitar o uso do sistema, a partir de
scripts é possível agrupar vários comandos e assim construir um arquivo executável, o shell
do linux é portanto tanto um interpretador de comandos como pode atuar como uma
linguagem de programação, linguagem essa conhecida como shell script.
Tal linguagem é muito usada por usuários avançados e administradores de sistemas,
o presente relatório abordará conceitos básicos sobre essa linguagem, mostrando como
funciona na arquitetura do sistema, além de propiciar ao leitor um contato com a sintaxe de

4
comandos básicos dessa linguagem, não é objetivo desse trabalho prover um conhecimento
avançado sobre shell script, mas introduzir o básico dessa linguagem.

5
O que é o Shell Script
Para se entender o que é o shell sript, faz-se necessário compreender como funciona
um sistema operacional bem como seus objetivos. Compreender completamente seu
funcionamento de um sistema operacional não é uma tarefa tão simples que possa ser
explicada num trabalho cujo foco é shell sript, portanto, para que haja um melhor
entendimento do shell sript, acha-se necessário citar o básico sobre sistemas operacionais. O
que é um sistema operacional?
Um sistema operacional pode ser definido como uma camada de software básica que
permite o uso dos recursos computacionais através de uma interface mais amigável com
usuários, além disso, os sistemas operacionais permitem uma maior facilidade para
desenvolvedores de programas e sistemas de computador já que com o uso de diversas
linguagens de computação, programadores não são mais obrigados a se preocupar em como
fazer o hardware trabalhar do modo desejável, na verdade, o sistema operacional é quem vai
ser o responsável por gerenciar recursos tais como:
arquivos, dispositivos de entrada e saída, processos,
entre outros, enquanto o programador se preocupará em
obedecer as regras de sintaxe da linguagem para
ensinar o computador a executar as tarefas desejáveis.
A figura ao lado exemplifica muito bem a estrutura de
um sistema computacional onde há um sistema
operacional. Figura 1: Sistema operacional dá suporte a outros
aplicativos. Coloca-se como intermediário entre
aplicativos e hardware.
Todo sistema operacional possui um kernel,
ou seja, um núcleo. Como atuará então esse núcleo?
O núcleo é quem vai gerenciar os recursos do sistema operacional, isso significa que as tarefas
principais de um sistema operacional, no caso o gerenciamento de vários recursos, serão
controladas pelo kernel.
Nos sistemas operacionais linux, existe uma classe de programas responsável por
interpretar comandos passados do usuário para o sistema operacional, essa classe de comandos
é chamada de SHELL, desse modo, pode-se dizer que o Shell é uma interface entre usuários e
núcleo do sistema, assim como o DOS ou PROMPT é nos sistemas Windows. No entanto

6
quando compara-se o SHELL com o DOS, percebe-se que o DOS é como o primo pobre do
SHELL, uma vez que o SHELL não se limita apenas a ser uma interface para execução de
comandos como é o DOS, mas trata-se também de uma linguagem de programação
interpretada, a partir do SHELL é possível escrever programas criando scripts que contém
vários comandos do SHELL, inclusive é possível implementar estruturas de controle, laços,
estruturas de condição entre outras. A figura 2 traz um exemplo da estrutura do sistema
operacional linux.
Para se escrever programas usando o shell é necessário dominar os comandos do shell,
ou pelo menos conhecer uma boa quantidade destes tais comandos se encontram em um
arquivo, cuja função é apenas guardar comandos, tal arquivo é chamado de SCRIPT, é
importante saber que muitos dos comandos pertencentes ao script são bem conhecidos de
quem já teve contato com o Terminal do linux.
O Shell é controlado por variáveis de ambiente. E o que são essas variáveis de
ambiente? As seções posteriores abordarão esse assunto.

Figura 2: Esquema do Linux com o Shell

Tipos de Shell
Para início dessa seção uma pergunta se faz necessária? O shell faz parte do kernel? A
resposta a essa pergunta é não, o shell usa o kernel do sistema para executar várias tarefas
como por exemplo executar um comando digitado pelo usuário ou criar um certo arquivo.

7
Não existe um único shell para todos os sistemas UNIX ou LINUX, sendo assim o
objetivo dessa seção é apresentar alguns dos tipos de shell que podem ser encontrados em
vários sistemas. Na tabela a seguir são mostrados 4 shells muito encontrados em sistemas
linux.
No MS-DOS o shell é chamado de COMMAND.COM, no entanto como o foco do
trabalho é o linux, bem como é mais interessante considerar um shell muito mais poderoso, a
análise será feita no shell do linux. O shell a ser considerado nesse trabalho é o bash, que
conforme a tabela 1 mostra é um dos mais encontrados nos sistemas Linux.
No linux é possível visualizar quais os tipos de shell, bem como verificar o shell
padrão da versão que está em uso, além de até mesmo modificar ou mudar o shell padrão, para
isso é preciso executar alguns comandos simples no Terminal do sistema, os comandos
mostrados a seguir referem-se as ações citadas acima:

 Visualizar os tipos de shell:


# cat /etc/shells (Comando)
/bin/bsh
/bin/ash
/bin/bash
/bin/sh (Resposta do sistema)
/bin/ksh
/bin/tcsh
/bin/csh

Outra opção para esta ação é:


# chsh -l
/bin/bsh
/bin/ash
/bin/bash
/bin/sh
/bin/ksh
/bin/tcsh
/bin/csh

8
É interessante notar o símbolo “#”, este símbolo tem um significado muito importante
nesse contexto visto que representa o shell de um super usuário (root), o super usuário root é o
usuário do sistema que possui todos os privilégios, logo ao estudar shell sript aconselha-se a
não estar no sistema como esse tipo de usuário já que há chances de causar danos no sistema.
Já o símbolo “$” diz ao usuário que ele está executando o shell de usuário comum, logo
alguns privilégios especiais são negados a esse usuário visando a segurança do sistema.
Portanto é sempre bom estar atento a esses detalhes.
O comando que permite ao usuário saber qual o shell padrão do seu linux é o seguinte:

 Verificar qual o shell padrão:

# echo $SHELL
/bin/bash

Para mudar o shell é necessário o uso comando chsh, se quiser verificar se funcionou
mesmo basta o usuário recorrer ao comando # echo $SHELL, o exemplo abaixo vai mostrar
os comandos mais detalhadamente:

 Mudar o shell padrão:

# chsh -s /bin/tcsh
(Para verificar se foi realmente alterado é só executar o comando abaixo)
# echo $SHELL
/bin/tcsh

A próxima seção ajudará a compreender o que são variáveis de ambiente, bem como
mostrará comandos do shell para manipulação destas.

Nome Desenvolvedor Local Observação

BASH (Bourne-Again Brian Fox e Chet Ramey Fundação do Software A maioria das shell
Shell) Livre comum em Linux. É shell
Freeware.

9
A sintaxe da shell C e o
CSH (C shell) Bill Joy Universidade da
uso são muito semelhantes
Califórnia (Para BSD)
aos
da linguagem de
programação C.

Usa a mesma sintaxe de


Ksh (Korn Shell) David Korn
AT & T Bell Labs comandos internos como
para os comandos não
embutidos. tem a
funcionalidade de outras
linguagens de script como
awk, ícone, PERL, REXX
e tcl.
TCSH é uma versão
TCSH melhorada mas
completamente
compatível com o shell C
Berkeley UNIX (CSH).
Tabela 1: Alguns shells encontrados em sistemas linux

Variáveis de ambiente
Em linguagem de programação, variáveis representam espaços de memória que
armazenarão um determinado dado, onde esse dado representa um valor desta variável,
portanto variáveis armazenam valores. Já foi dito acima que o shell é executado em um
ambiente controlado por variáveis de ambiente, tais variáveis abrigam valores ou definições
que programas bem como o shell utilizam para configuração no momento que se realiza login
ou inicializa o programa, tais variáveis podem ser alteradas e se localizam em arquivos de
configuração. Existem dois tipos de variáveis de ambientes:
Locais – disponíveis apenas para o shell corrente.
Globais – disponíveis para o shell corrente e para subprocessos que venham a usa-las.
A tabela 2, traz uma lista das variáveis de ambiente mais comuns no bash.

Variável Descrição

10
PATH Indica os lugares onde o bash deverá procurar os programas
executáveis. O linux não permite que programas fora de diretórios
referenciados por esta variável seja executados, para executar tais
programas será preciso acessar o diretório onde este se encontra e antes
digitar o nome do programa incluindo os caracteres “./”.
SHELL Exibe o shell em uso corrente
MANPATH Indica diretórios onde o comando man procura páginas de manuais
TERM Indica o tipo de terminal em uso
HOME Contém o diretório home do usuário
LONGNAME Contém o nome do usuário
USER Contém o nome do usuário
EDITOR Indica editor de texto padrão do sistema
BROWSER Indica o browser padrão
HISTSIZE Define número máximo de comandos a ser mantido pelo comando
history
OSTYPE Indica o sistema operacional em uso
MAIL Indica diretório de email do sistema
HOSTTYPE Indica arquitetura do sistema
PS1 e PS2 São os prompts que serão mostrados pelo bash. Códigos para
configuração do prompt são:
\! Exibe o número de histórico do comando corrente
\# O número desse comando
\$ Usado como prompt para todos os usuários exceto o root
\w Diretório de trabalho corrente
\d Exibe data
\t Exibe hora
\h Exibe o nome da máquina
\s Exibe shell corrente
\u Exibe o nome do usuário
Tabela 2: Lista de variáveis mais comuns no bash. Fonte: Linux guia do administrador do sistema.

11
Um exemplo de uso destas variáveis pode ser a ação de incluir um diretório na variável
PATH o comando seria o seguinte:

PATH = $PATH:/<caminho_do_diretório_a_ser_incluido/<nome_do_diretório>

Exemplo disso é o seguinte:

$ PATH = $PATH:/exercicios

Incluiu o diretório /exercicio no PATH

Comandos de manipulação de variáveis


As variáveis de ambiente conforme já citado podem ser manipuladas, para isso existem
vários comandos com diferentes finalidades.
Echo – exibe o valor de uma variável de ambiente
Exemplo: $ echo $PATH

Printenv – exibe a lista de variáveis de ambiente


Exemplo: $ printenv

Export – torna o valor de uma variável de ambiente global


Exemplo: $ export EDITOR=/usr/bin/pico

Unset – exclui o valor de uma variável de ambiente


Exemplo: $ unset EDITOR

Chsh – altera o shell padrão


Exemplo: $ chsh -s /bin/csh

Aliases
Quem já trabalhou ou já mexeu com xml sabe muito bem o que é isso, alias são
apelidos que podem ser dados a comandos do linux facilitando o uso destes. Os aliases podem

12
ser modificados e criados usando o comando $ alias, estes podem ser especificados no arquivo
de configuração .bashrc.
A sintaxe desse comando é muito simples:
Alias [apelido=“comando”]
Veja um exemplo:

$ alias ( lista todos os apelidos existentes)


$ alias zera=“clear” (Cria o alias chamado zera, que é similar ao comando clear)

Para desfazer um alias existente é usado o comando: unalias sinônimo.

Arquivos de configuração do bash


Arquivos de configuração definem várias características que serão importantes no uso
do shell do seu sistema, tais características podem ser: alias, variáveis de ambientes da sessão
que está sendo acessada dentre outros. Tais arquivos se dividem em duas categorias: Locais e
Globais. A diferença entre elas é muito simples: Arquivos locais influenciam apenas na sessão
do usuário que está acessando o sistema, ou seja, as configurações desse arquivo só terão
validade para um determinado usuário; Arquivos globais influenciam nas seções de todos os
usuários que fizerem logon no sistema operacional.
Não é difícil descobrir se um arquivo se trata de arquivo de configuração global ou
local. Arquivos de configuração local se localizam dentro do diretório /home/usuário, além
disso geralmente iniciam com o “.”, por exemplo: .bashrc . Os arquivos globais estão dentro
do diretório etc e não possuem o “.” no início do nome do arquivo.
Num shell de login a ordem de uso das variáveis de configuração é a seguinte:

1 – Ao carregar um shell de login o Linux carrega inicialmente o arquivo


/etc/bashrc ou /etc/profile.
2 – Depois o sistema procura executar o script $HOME/.bash_profile.
3 - Se ele não existir o sistema irá procurar pelo $HOME/.bash_login.
4 - Se ele não existir o sistema irá procurar pelo $HOME/.profile.
5 – O sistema executa $HOME/.bashrc se houver.
6 – O shell está pronto para interagir com o usuário e apresenta o prompt.

13
7 – Quando o usuário sair do shell o script $HOME/.bash_logout é executado.

Veja a tabela abaixo com alguns arquivos de configuração do bash.

Arquivo Descrição

/etc/shells Contém shells e programas que podem ser


escolhidos pelo comando chsh

/etc/motd Contém mensagem que é exibida para o


usuário após o login, por padrão não possui
conteúdo

/etc/profile Define variáveis de ambiente para todos os


usuários. Executado automaticamente no
login

/home/usuário/.bash_profile Define variáveis de ambiente para um


usuário.

/etc/bashrc Define os aliases para todos os usuários. É


executado automaticamente na inicialização
do shell.

/home/usuário/.bashrc Define os aliases para um usuário.

/home/usuário/.bash_logout Executa comandos presentes neste arquivo


no logout do sistema.

/home/usuário/.bash_history Armazena os últimos comandos digitados


pelo usuário.
Tabela 3: Arquivos de configuração do bash. FONTE: Linux guia do administrador do sistema.

Shell sript - início


Para programar em shell script é necessário respeitar as regras da sintaxe bem como
compreender determinados conceitos importantíssimos na linguagem.
A primeira coisa que o usuário precisará saber é como começar a escrever um
programa no shell sript. Escrever programas no shell envolve criar arquivos que contém séries

14
de comandos do shell, a primeira linha do arquivo script sempre deve começar com o seguinte
comando: #!caminho_shell. No caso em questão, o shell analizado é o bash, então deve-se
colocar o caminho do bash, veja: #! /bin/bash. Essa expressão indica ao kernel que o arquivo
script criado é um arquivo executável assim como no windows são os arquivos .bat, .exe.
Em seguida, é preciso informar que o arquivoé executável por mudar suas permissões,
nesse caso o conhecido comando chmod entra em ação: # chmod u+x shell_script.

Shell sript – Variáveis


De acordo com (JARGAS) “as variáveis são a base de qualquer script” não somente no
shell mas em qualquer linguagem de programação é imprescindível o uso de variáveis. Em
seções acima esse assunto já foi tratado, de modo que não se faz necessário colocar aqui
novamente a definição de variáveis.
Para definir uma variável no shell script usa-se o sinal “=”, por exemplo:
$ frase=“eu sou lindo”
O comando acima digitado refere-se a criação de uma variável cujo nome é “frase”
onde essa variável frase está recebendo como valor a frase: eu sou lindo. Para visualizar o que
há dentro dessa variável basta executar um echo:

$ echo $frase
Saída será: eu sou lindo
Variáveis podem armazenar também a saída de um comando, para isso é preciso
colocar o comando entre parênteses ao invés de entre aspas.
$ hoje=$ (date)
$ echo “Hoje é: $hoje”
Saída: Hoje é [a data do dia em que o script está sendo executado]

Ainda é possível apagar variáveis, para fazer isso usa-se o comando unset, por
exemplo: unset hoje. Com esse comando a variável hoje é apagada.

15
Shell sript – Comandos
O shell não usa parênteses para separar o comando dos seus argumentos, na verdade o
espaço em branco vai servir para isto, o formato dos comandos no shell é o seguinte:
[COMANDO] [OPÇÕES] [PARAMETROS]
Exemplo disso é mostrado a seguir com o comando cat:
$ cat –n sistema
Nesse caso cat é o comando, -n é a opção do comando desejada e sistema é o nome do
arquivo cujo conteúdo será mostrado.
O shell possui comandos próprios, mas lida também executáveis do sistema. Certos
comandos são como ferramentas do shell, estes foram feitos para serem usados pelo shell,
alguns destes estão listados abaixo:

Comando Função Opções úteis


cat Mostra arquivo -n, -s
cut Extrai campo -d -f, -c
date Mostra data -d, +'...'
find Encontra arquivos -name, -iname, -type f, -exec
grep Encontra texto -i, -v, -r, -qs, -w -x
head Mostra Início -n, -c
printf Mostra texto nenhuma
rev Inverte texto nenhuma
sed Edita texto -n, s/isso/aquilo/, d
seq Conta Números -s, -f
sort Ordena texto -n, -f, -r, -k -t, -o
tail Mostra Final -n, -c, -f
tr Transforma texto -d, -s, A-Z a-z
uniq Remove duplicatas -i, -d, -u
wc Conta Letras -c, -w, -l, -L
A linguagem do shell também permite a união de vários comandos, havendo assim
uma combinação de comandos. Em seqüência formam um comando completo, veja um
exemplo:

16
$ cat /etc/passwd | grep root | cut -c1-10
root:x:0:0
operator:x
$

Operadores
Operadores são símbolos que permitem aplicar determinadas operações sobre
determinadas variáveis, os operadores podem ser divididos em lógicos e aritméticos. A tabela
a seguir informa os operadores usados pelo shell bash.

Operador Uso
!,~ Negação lógica, complemento de 1
*,/,% Multiplicação, divisão, módulo
+, - Adição, subtração
<< , >> Deslocamento de bit à esquerda e a direita
<=, >= Menor igual, maior igual
<,> Menor que, maior que
== , != Igualdade, desigualdade
& AND
^ Exclusive OR
| OR
&& AND lógico
|| OR lógico
= Atribuição de valor
Tabela 4: Operadores do bash. FONTE: Linux guia do administrador do sistema.

Entrada Interativa
Entrada interativa é um recurso do shell bash que permite a entrada de parâmetros no
bash, nesse caso quando o interpretador chegar em certo ponto do código que referencie a um
comando de entrada interativa ele só vai passar para as instruções seguintes depois que o

17
usuário digitar a entrada. Por exemplo, um programa que exija que o usuário digite seu nome
e após isso exibe uma mensagem de boas vindas.
O comando de entrada interativa é o read, corresponde ao verbo ler no português,
portanto esse comando faz uma leitura sobre o que o usuário digitou e em seguida executa
uma determinada ação. A sintaxe desse comando é muito simples, veja: read linha. Para fixar
como esse comando funciona veja o código a seguir:
#! /bin/bash
# /usr/local/bin/nome.bash
Echo –n “Digite seu nome:”
Read NOME SOBRENOME
Echo “Prazer em conhece-lo $NOME !”
Esse arquivo pode ser tornado um arquivo executável da seguinte forma:
# chmod 755 /usr/local/bin/nome.bash
Para executar esse script é só fazer: # nome.bash .

Expressões aritméticas
É possível elaborar cálculos no shell, até mesmo automatizar fórmulas, para isso é
imprescindível obviamente o uso dos operadores aritméticos, além disso, existe um comando
chamado let, ele realiza a aritmética com números inteiros.
Exemplo de utilização:
#! /bin/bash
# /usr/local/bin/let.bash
Echo –n “Entre dois números’’
Read A B
let C=0
let C=A+B
echo $((C ))
A construção de expressão aritmética exige o uso desses dois parênteses de cada lado
do C na última linha.

18
Estruturas condicionais
As estruturas condicionais no shell bash são realizadas por três comandos diferentes,
cabendo a quem vai programar escolher aquela que melhor se adequa a sua necessidade, as
estruturas são realizadas pelos comandos if, case.
IF – executa um bloco de comandos somente se a condição que é dada através de uma
expressão for verdadeira. A lógica desse comando funciona basicamente assim: Se tal
comando for verdadeira faça isso, se não faça outra coisa.
A sintaxe desse comando é a seguinte:
if EXPRESSÃO
then
comandos
else
comandos
fi
Exemplo desse comando:
if test "$VARIAVEL" -gt 10
then
echo "é maior que 10"
else
echo "é menor que 10"
fi

CASE – muito parecido com o if no entanto tal comando simplifica e facilita a escrita
de código já que o programador ao usar tal comando evitará abrir e fechar ifs em demasia.
Funciona do seguinte modo: Caso opção a execute esses comandos, opção b execute aqueles,
opção c esses outros, e assim sucessivamente.
A sintaxe do Case:
Case VALOR in
padrão1)
lista de comandos 1;;
padrão2)

19
lista de comandos 2;;
padrão3)
lista de comandos n;;
*)
Lista de comandos;;
esac
Exemplo:
case $1 in
a)
echo teste1;;
b)
echo teste2;;
c)
echo teste3;;
[d-f])
echo teste4;;
*)
echo erro;;
esac

Estruturas de laço
Estruturas de laço são importantíssimas quando o assunto é otimizar código e poupar
trabalho, imagine testar uma lista de 10000 itens um a um para verificar se cada item satisfaz
uma determinada condição, isso não é muito prático. Situações como essa exemplificam a
importância de comandos e estruturas de laço. No bash tais estruturas são realizadas por três
comandos: for, while e until.
For – executa iteração do laço para cada elemento, a cada iteração a variável que está
sendo usada na estrutura assume o valor de cada elemento contido na lista de valores. A
sintaxe é:
for VARIÁVEL in LISTA_DE_VALORES
do

20
LISTA_DE_COMANDOS
done
Exemplo:
for numero in um dois três quatro cinco
do
echo "Contando: $numero"
done

While – executa os comando do laço enquanto a expressão for verdadeira. Veja a


sintaxe:
While expressão
do
lista de comandos
done
Exemplo:
i=0
while test $i -le 10
do
i=$((i+1))
echo "Contando: $i"
done

Until – esse comando executa os comandos do laço até que uma determinada
expressão seja verdadeira, a sintaxe é a seguinte:
until expressão
do
Lista de comandos

done
Esse comando é o equivalente a dizer: Até que aconteça isso faça aquilo.

21
Comandos de controle
São vários os comandos de controle, dentre tantos pode-se citar break, continue e
return, tais comandos são bem conhecidos de programadores de certas linguagens.
O return sai de uma função com código de saída, é como se após executar uma função,
esta retornasse algum valor para ser visualizado pelo usuário ou servir de entrada para outro
comando.
O break é utilizado em laços, esse comando finaliza um laço
Continue interrompe uma interação atual de um laço e salta a n-ésima interação.

Funções
Funções são o que se pode chamar subrotinas, é uma forma de organizar melhor o
código deixando-o mais legível e mais fácil de ser compreendido, uma função pode abrigar
vários comandos, inclusive inúmeras das estruturas citadas anteriormente, a sintaxe de funções
no shell nash se parece muito com a sintaxe de outras linguagens como por exemplo action
script. Veja a sintaxe:
function nome_da_função () {lista_de_comandos}
O exemplo a seguir demonstra como são usadas.
function fatorial ( ) {
let A=1
while [ $N –gt 0 ]
do
let A=A*N
let N=N-1
done
echo $A
}

echo –n “entre com um número: ”


read N
echo ‘fatorial $N’
exit

22
É interessante notar que todos os comandos responsáveis pelo cálculo estão dentro da
função e em seguida são passados comandos apenas para mostrar o resultado obtido.

23
Considerações Finais
O presente relatório tem como papel principal mostrar não tudo sobre o shell sript, até
porque seria impossível colocar todos os detalhes do shell em tão poucas páginas, muitos
comandos não foram abordados, mas acredita-se que os que foram mencionados aqui são
suficientes para introduzir o leitor ao mundo da programação usando shell script, o objetivo
desse relatório foi apresentar um pouco do que é o shell script, como ele funciona, suas
características, bem como alguns comandos e suas sintaxes.
A partir desse trabalho fica claro a importância que o shell possui não somente no
linux mas em qualquer sistema operacional, além de ver quão poderoso é esse recurso no
sistema linux.
Certamente o profissional que tem conhecimento de linux e shell script tem um
currículo diferenciado e muito desejável por empresas que trabalham com linux, portanto
avançar nos estudos deste conteúdo bem como de outros que envolvam o linux é uma boa
oportunidade de crescer em conhecimento e obviamente profissionalmente.

24
Referências
FERREIRA, Rubem E. Linux Guia do administrador do sistema. Editora Novatec 2ª edição,
ano 2008.

JARGAS, Aurélio Marinho. Introdução ao Shell Script. Disponível em:


aurelio.net/shell/apostila-introducao-shell.pdf

Outras Referências
http://wwwusers.rdc.puc-rio.br/rmano/comp4db.html

http://www.it.uom.gr/teaching/linux/lsst/

http://www.vivaolinux.com.br/artigo/Trabalhando-com-shell-e-variaveis-de-ambiente

http://www.devmedia.com.br/post-21069-Arquivos-de-Configuracao-Shell-Linux-Shell-
Essentials-Parte-3.html

25

Você também pode gostar