igor@faccat.br, julianomuller@faccat.br,
marcelosantos@cwi.com.br
Resumo:
Este artigo apresenta o
histórico, conceitos básicos, as aplicações, vantagens e características do
Shell Script. Descreve também o quão útil pode ser para sistemas e
administradores de rede.
1. O que é Shell Script?
Shell Script são arquivos texto que contém um ou mais comandos de shell – comandos GNU/Linux. Estes programas podem ser usados para simplificar tarefas repetitivas, substituir comandos que sempre são executados juntos com um comando único, automatizar a instalação de outros programas e até para escrever aplicações interativas, ou seja, o Shell Script é utilizado para desenvolvimento de aplicações simples ou complexas.
2. Histórico
Foi desenvolvido por S.R Bourne em 1975. O Bourne Shell foi um dos primeiros shells desenvolvidos. Pela sua simplicidade, ele continua sendo um dos mais rápidos e leves até hoje.
O C Shell foi a evolução do Bourne Shell. Desenvolvido por Bill Joy ele apresentava como uma grande inovação o histórico de comandos e o controle de processos em foreground e background. Porém a principal característica do C Shell era a semelhança da sintaxe com a linguagem de programação C. Atualmente temos o Turbo C Shell, que apresenta algumas melhorias em relação ao C Shell.
David Korn, na busca de uma atualização do shell desenvolvido por Bourne Shell, criou o Korn Shell, onde todos os comandos do Bourne Shell eram reconhecidos, incluindo algumas instruções.
O Bash (Bourne Again Shell), surgiu
como uma reimplementação do Bourne Shell, apresentando melhorias em relação ao
Bourne Shell. Este shell popularizou-se pela expansão nos sistemas GNU/Linux.
3. Características Técnicas
O paradigma de programação desta linguagem é um paradigma interpretado.
Shell é uma linguagem de programação completa, considerada como uma linguagem de quarta geração (4GL), por ser uma ferramenta original de protótipo rápido que ensina conceitos-chaves como modularidade, reutilização e desenvolvimento. Possui variáveis, construções condicionais, interativas e ambiente adaptável ao usuário.
A comunicação do Shell é através de comandos que comunicam-se entre si por meio de uma interface coerente e simples que denomina-se Pipeline (conduto), no qual pode ser representada pelo caracter |.
Quando um usuário conecta-se a um sistema Unix, o sistema operacional inicia automaticamente uma cópia do Shell, sob a qual o usuário poderá realizar qualquer função disponível. O Shell permite que o usuário realize suas atividades sem afetar qualquer outro processo. Como utiliza o sistema de arquivos do Unix, permite organizar arquivos em pastas. Esta hierarquia de diretórios e arquivos gera uma visão simples e clara de toda a informação no sistema.
O bash possui histórico, ou seja, cada vez que apertamos a tecla que representa a seta para cima, temos um comando já executado anteriormente. Quando estamos digitando o nome de um diretório ou arquivo, ao apertarmos a tecla TAB, aparece o nome completo do arquivo, ou seja, ele é auto-completado.
Para a utilização do Shell Script, é necessário alguns conhecimentos internos (como seus comandos) e do seu uso para se beneficiar de seus recursos, porém para torna-lo eficiente e produtivo, realmente o mais necessário é a criatividade.
4. Aplicabilidade
É possível utilizar a programação em Shell Script de dois modos distintos: interativo e automatizado.
Quando deseja-se realizar uma operação simples, uma única vez ou então interagir com o comando, usa-se o modo interativo. A qualquer momento que executa-se algum comando, como ls ou cat, por exemplo, o Shell está sendo utilizado interativamente.
Quando o uso do Shell interativamente está tornando-se cansativo e repetitivo, pela exigência da digitação, o mais prático é tornar estes comandos repetitivos um arquivo para reaproveitamento (o uso do script).
O uso automatizado do Shell Script (utilizando arquivos com comandos), deve ser feito quando houver exigência de: procedimento do qual todos os usuários poderão beneficiar-se sem necessitarem digita-los; procedimentos complexos usando muitas linhas de comando; execução de uma tarefa num momento (data, hora, dia) planejada; interação de informações de vários sistemas existentes; tarefas rotineiras.
5. Exemplo
Este exemplo lista somente os sub-diretórios de um diretório.
if test -z "$1"
then
dir="*"
else
dir=$1
fi
echo $dir | xargs ls -lad | awk '{
type=substr($1,1,1)
if (type == "d")
{ print $0 }
}
Referências Bibliográficas
http://www.linhadecodigo.com.br
NEVES, J. C. Programação Shell Linux. Ed. Brasport. Rio de Janeiro. RJ. 2004
echo -e "\033[32m Boa Noite" $USER
echo -e "\033[33m Digite um valor"
read VALOR1
echo -e "\033[36m Digite outro valor"
read VALOR2
echo -e "\033[31m Soma"
expr $VALOR1 + $VALOR2
echo -e "\033[0m Multipicacao"
expr $((VALOR1 * VALOR2))