Linguagem de Programação – Shell Scritpt

 

 

Igor Silva da Silva, Juliano Muller de Souza, Marcelo Carvalho dos Santos

 

Faculdade de Informática de Taquara – FIT

Av. Oscar Martins Rangel, 4500 – CEP: 95600-000 – Taquara/RS

 

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://aurelio.net/shell

http://www.linhadecodigo.com.br

http://www.linuxconf.com.br

NEVES, J. C. Programação Shell Linux. Ed. Brasport. Rio de Janeiro. RJ. 2004

 

 

Trabalho prático sobre Shell Script

 

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))