html - Faccat

Propaganda
Shell Script
Fabiano Jacoboski1, Jackson Colombo2
Faculdades de informática de Taquara (FIT)
Cep 95.600-000 – Taquara – RS – Brasil
[email protected], [email protected]
Resumo. Linguagens de Programação existem muitas. O Shell do Linux, além
de ser a “linha de comando”, a interface do sistema com o usuário, também é
um rico ambiente de programação, e é sobre isso que iremos tratar neste
artigo
_______________________
1. Histórico e Evolução
Desenvolvido por S.R Bourne em 1975, o Shell script, é uma linguagem sofisticada e
muito leve. Se popularizou com a expanção do sistema Linux, hoje em dia muito
utilizada, ele atua com interface usuário - sistema operacional
A evolução do Bourne Shell foi o C Shell. Desenvolvido por Bill Joy ele
apresentava como inovações o histórico de comandos (que permite usar um "apelido"
para omandos complexos) e o controle de processos em foreground e background. Mas
a característica principal do C Shell era a semelhança de sua sintaxe com a da linguagem
C. Recentemente tivemos o desenvolvimento do Turbo C Shell, que apresenta algumas
melhorias em relação ao C Shell.
Na busca da implementação do das características positivas do Bourne Shell e
do C Shell, surgiu o Korn Shell, desenvolvido por David Korn.
O Bash (Bourne Again Shell) surgiu como uma reimplementação do Bourne
Shell realizada pelo Projeto GNU (www.gnuproject.org). Apresentando melhorias em
relação ao Bourne Shell, esse shell se popularizou pela expansão em sistemas
GNU/Linux e portanto, é nele que iremos nos basear neste artigo.
2. Características
Além de possuir as funcionalidades básicas de uma linguagem estruturada
normal, o Shell se diferencia pela integração "natural" com o Sistema
Operacional,
tendo
comandos
especialistas
em
manipular
arquivos,
processos e descritores.++++++++
+++++++++++++++++++++++++++++++++++++
Mas o seu ponto forte, o divisor de águas que o torna especial é o
acesso direto e gerenciamento facilitado de todos os programas do
Sistema Operacional. Cada executável com suas
uma ferramenta
disponível
para
Shell._______________________________
muitas opções
programar
se torna
em
O shell é um módulo que atua como interface usuário - sistema
operacional, possuindo diversos comandos internos que permitem ao usuário
solicitar serviços do sistema operacional. O shell também implementa um
linguagem simples de programação que permite o desenvolvimento de pequenos
programas (os famosos shell scripts).________________________________________
Em muitos sistemas o interpretador de comandos é uma parte da estrutura
interna do S.O.. No Unix porém, o shell é um programa como outro
qualquer, além de ser uma linguagem de programação sofisticada (scripts em
shell). Como dito anteriormente, existem diversos tipos de shell como o
/bin/sh (Bourne Shell), /bin/ksh (Korn Shell) e o /bin/csh (C Shell)
O shell do Unix suporta o conceito de scripts. Os comandos do Unix
podem ser colocados em um arquivo, e executados entrando-se com o nome do
arquivo no prompt do shell. Os scripts do shell do Unix são análogos aos
arquivos de execução em lote do DOS (BAT). Para que um script do shell
possa ser executado, não é necessário seguir nenhuma convenção especial
de nomes, como acontece no DOS; em vez disso, o arquivo com o script
deve receber permissões de execução. Há uma vaga convenção de nomes para
os scripts do Unix._____________________________________________________
Para indicar que um comando é um script do shell do Unix, acrescenta-se
a extensão.sh. Isto não é obrigatório, e o shell do Unix não trata os
arquivos que usam esta convenção de nomes de forma diferente do que
qualquer outro arquivo comum. É simplesmente uma convenção que torna mais
fácil para o usuário reconhecer que um comando é, na realidade, um
script do shell e não um executável binário. Observe, ainda, que as
convençòes de nomes do Unix não impõem padrões específicos para indicar
executáveis binários, como acontece no DOS.__________________________________
Programadores e usuários recém-chegados ao Unix devem compreender que o
shell do Unix é tão versátil, e os recursos da programação em shell são
tão poderosos, que frequentemente acontece de novas aplicações poderem
ser escritas em linguagem shell, e não em C, mais difícil e mais
pesada. Isto é particularmente verdadeiro para ferramentas de programação
personalizada. Em muitos sistemas Unix provavelmente serão encontradas
ferramentas personalizadas já disponíveis. De fato, é uma bênção e uma
maldição no ambiente Unix
Além de possuir as funcionalidades básicas de uma linguagem estruturada
normal, o Shell se diferencia pela integração “natural” com o Sistema
Operacional,
tendo
comandos
especialistas
em
manipular
arquivos,
processos e descritores._Mas o seu ponto forte, o divisor de águas que o torna especial é
o acesso direto e gerenciamento facilitado de todos os programas do
Sistema Operacional. Cada executável com suas muitas opções se torna uma
ferramenta
disponível
para
programar
em
Shell.__________________________________
O shell é um módulo que atua como interface usuário - sistema operacional,
possuindo diversos comandos internos que permitem ao usuário solicitar serviços do
sistema operacional. O shell também implementa um linguagem simples de
programação que permite o desenvolvimento de pequenos programas (os famosos shell
scripts). Em muitos sistemas o interpretador de comandos é uma parte da estrutura
interna do S.O.
3. Exemplo de programa
Criação de um pequeno shell script:
Vamos começar por criar um pequeno script que efectue as seguintes tarefas:
- Mostrar o nome do directório orrente._______________________________________
- Listar o conteúdo do directório corrente._____________________________________
- Indicar que terminou a tarefa.____________________________________________
Estas tarefas poderiam ser executadas manualmente através da utilização dos comandos
"pwd", "ls" e "echo". Para automatizar esta tarefa basta criar um arquivo com os
comandos dentro. Utilizando um editor de texto pode-se criar um arquivo chamado "dl"
(directory list) com o seguinte
conteúdo:___________________________________________________
$ cat dl
pwd
ls
echo "fim do script"
$
Depois de feito esta primeira parte, já se tem um programa escrito em shell! Para o
executar basta, a partir do shell, digitar o seguinte comando:
sh dl
Os comandos contidos no ficheiro "dl" são executados sequêncialmente pelo shell: o
nome do directório é mostrado primeiro, seguido do resultado do comando ls, e
finalmente o echo diz "fim do script.".
4. Conclusão
O shell é uma ferramenta poderosa dos sistemas GNU/Linux, portanto é bastante
interessante para aqueles que querem se aventurar no mundo Linux aprenderem pelo
menos alguns comandos básicos dele.
5. Referencias
UNIX – WORLD PAGE - Home page dedicada ao Unix. Disponível em
<http://planeta.terra.com.br/esporte/biscoito/biscoito/unix.html> Acesso em 17 de Abril
de 2005.
VIVA O LINUX – Home Page de uma comunidade de usiários de Linux. Disponível
em <http://www.vivaolinux.com.br/artigos> Acesso em 17 de Abril de 2005.
Download