Você está na página 1de 4

Paradigmas da Linguagem Shell Script

Ana Carolina Schneider da Silva, Catherine da Silveira Heldt

Faculdade de Informtica de Taquara

anacarolina@faccat.br, cheldt@uol.com.br
Resumo. Shell Scripts so arquivos texto que contm um ou mais comandos
de shell - comandos GNU/Linux. Estes programas podem ser usados para
simplificar tarefas repetitivas, para substituir comandos que so sempre
executados juntos com um comando nico, para automatizar a instalaco de
outros programas e at para escrever aplicaes interativas, ou seja, para
desenvolvimento de aplicaes simples ou complexas. Neste artigo
apresentaremos o histrico, conceitos bsicos e particularidades deste
recurso cada vez mais explorado..

1. Histrico
Segundo Jlio Cezar Neves [NEVES], Shell Scripts so um meio de executar vrias
tarefas em apenas um comando, muitas vezes com o objetivo de facilitar o trabalho de
quem os usa. Ou seja, Shell um programa que permite ao usurio interagir com o
sistema operacional atravs de comandos digitados do teclado, interpretando os
comandos digitados e os traduzindo para comandos que so reconhecidos pelo kernel
do GNU/Linux (ncleo do sistema operacional). Esses comandos podem ser simples
(como um ls ou cd) ou utilizando laos e selees (como if e while), como digitados
somente uma vez no shell ou salvos em um arquivo para uso posterior.
O shell mais famoso de GNU/Linux o Bash, pois o mesmo oferece vrios
recursos. O mais bsico o sh. Em todos estes possvel criar scripts, que, como ja
dito, so conjuntos de comandos armazenados em um arquivo texto que so
executados seqencialmente, como se estivessem sidos digitados pelo usurio.
Podemos fazer uma comparao com os arquivos do tipo .bat, que eram usados no MS-
DOS, porm programando em Shell Script teremos muitos recursos a mais. Existem
tarefas em que devemos digitar uma mesma sequncia de comandos vrias vezes.
Nestes casos podemos aumentar a produtividade digitando os comandos em um nico
arquivo que chamamos de shell script e que pode ser executado sempre que for preciso

Abaixo, os principais shells:

Bourne Shell: Este o shell padro no UNIX e sua representao no UNIX sh;

Bourne-Again Shell: Este o shell padro no GNU/Linux - o bash;

Korn Shell: Este o shell atualizado do Bourne Shell. Todos os comandos do


Bourne Shell so reconhecidos, incluindo algumas instrues por David Korn, da
Bell Labs , empresa AT&T o ksh;
C Shell: Este shell o mais utilizado em ambientes Berkeley (BSD) e em XENIX.
Sua estrutura de linguagem semelhante com a linguagem C. Sua representao nos
ambientes BSD e XENIX csh.

2. Paradigma de Programao
Paradigma Interpretado.

3. Caractersticas Tcnicas
Shell uma linguagem de programao completa, possuindo variveis, construes
condicionais, interativas e ambiente adaptvel ao usurio. a ferramenta original de
prottipo rpido que ensina conceitos-chaves como modularidade, reutilizao e
desenvolvimento, sendo assim considerada como uma linguagem de quarta gerao
(4GL).
Os comandos do Shell se comunicam entre si por meio de uma interface simples e
coerente chamada Pipeline (conduto), que pode ser representada pelo caracter | ;
O Shell permite que o usurio realize suas atividades sem afetar qualquer outro
processo que no lhe pertence. Quando um usurio conecta-se a um sistema Unix, o
sistema operacional inicia automaticamente uma cpia do Shell, sob a qual o usurio
poder realizar qualquer funo disponvel;
Como tiliza o sistema de arquivos do UNIX, permite organizar arquivos em pastas
(diretrios). Esta hierarquia de diretrios e arquivos gera uma viso simples e clara de
toda a informao no sistema;
O UNIX transportvel; ele roda em quase todo hardware de computadores
fabricados atualmente. Seu investimento no ser desperdiado, pois qualquer
programa escrito largamente portvel entre UNIXs de diferentes plataformas e
fornecedores assim sendo, GNU/Linux tambm;
O bash possui histrico, ou seja, cada vez que apertamos a tecla que representa
uma seta para cima, temos um comando j executado anteriormente. Se apertamos uma
vez, temos o ltimo comando executado. Se apertamos duas vezes, temos o penltimo
comando executado e assim por diante. Quando estamos digitando um diretrio ou
arquivo, ao apertarmos a tecla TAB, nos aparece o nome do arquivo todo. Ou seja, ele
completado automaticamente . Caso no tenha auto-complemento ou o complemento
seja inexistente, o bash emite um beep, seno aparecero opes de complemento de
nome (ou comando).
Com scripts shell pode-se multiplicar a produtividade, pois ele pode automatizar
a maior parte das tarefas recursivas, que compreendem de 50% a 80% das atividades
intensamente humanas.
necessrio alguns conhecimentos internos do Shell (como seus comandos) e do
seu uso para se beneficiar de seus recursos, porm para torn-lo eficiente e produtivo
realmente o mais necessrio a criatividade (ou inventividade).

4. Aplicabilidade
Podemos usar a programao em Shell Script de dois modos distintos: interativo e
automatizado.
Usa-se o modo interativo quando deseja-se realizar uma operao simples, uma
nica vez ou ento interagir com o comando. A qualquer momento que se executa
algum comando, como ls ou cat, por exemplo, o Shell est sendo usado
interativamente.
Quando o uso do Shell interativamente est se tornado cansativo e repetitivo pela
exigncia da digitao (e re-digitao), o mais prtico tornar estes comandos
repetitivos um arquivo para reaproveitamento: o uso do script.

O uso automatizado do ShellScript (fazendo uso de arquivos com comandos) deve


ser feito sempre que houver exigncia de: procedimentos complexos usando muitas
linhas de comando; procedimento do qual todos os usurios podero beneficiar-se sem
necessitarem digitar eles; execuo de uma tarefa num momento (data, hora, dia)
planejada; interao de informaes de vrios sistemas existentes; tarefas rotineiras.

5. Exemplo de Script em Shell Script


Este script realiza backup em servidor remoto de ftp (o fit.faccat.br, no exemplo) e
cada arquivo que gravado recebe nome diferente, dessa forma o backup realizado no
dia anterior no ser sobreposto pelo atual.

DIR_ORIG="/home/aluno/"
BKP_NAME="teste"
BKP_EXT=".tar.gz"
FTP_HOST="fit.faccat.br"
FTP_USER="usuario"
FTP_PASS="senha"

# compactao do diretrio de origem


#tar -czpf ./${BKP_NAME} ${DIR_ORIG}
tar zcf ./${BKP_NAME}`date +%Y_%m_%d`${BKP_EXT} ${DIR_ORIG}
# envio para o FTP, onde neste caso, abre a conexao com o servidor,
# deleta o arquivo de backup existente e envia o novo backup para o
# diretorio home do usuario do FTP.
ftp -in <<EOF
open $FTP_HOST
user $FTP_USER $FTP_PASS
bin
hash
prompt
del $BKP_NAME
mkdir $DATA
cd $DATA
put ${BKP_NAME}`date +%Y_%m_%d`${BKP_EXT}
bye
EOF

# mensagem de resultado
echo "Backup concluido com sucesso."
echo "Diretrio: ${DIR_ORIG}"
echo "Destino: ${FTP_HOST}/${BKP_NAME}`date +%Y_%m_%d`${BKP_EXT}";
exit 0

6. Referencias
Neves, J. C. Programao Shell Linux. Ed. Brasport. Rio de Janeiro. RJ. 2004.
http://www.dicas-l.unicamp.br/dicas-l/20040721.php
http://www.tldp.org/LDP/abs/html/
http://oase-shareware.org/shell/links/index.html
http://www.linuxconf.com.br/

Você também pode gostar