Introduzindo um pouco mais a fundo o shell script

Shell scripts seguem a sintaxe do interpretador de comandos a que é direcionado. Caso não tenha entendido a afirmação, acompanhe mais uma autópsia frasal destinada a iniciantes.

[ Hits: 23.629 ]

Por: Perfil removido em 23/07/2008


Obviamente desconfiado



Novamente surgem termos que podem ser estranhos ao nosso vocabulário.

Sintaxe e interpretador de comandos?

Sem pretensões heróicas, este artigo pode salvar dos efeitos da obscurantismo... Pois então, vamos a mais uma missão possível...

O que é Sintaxe?

O significado do termo sintaxe referente às linguagens de programação é plenamente equiparável ao sentido dado ao mesmo em relação à comunicação humana. Você, se não sabia, desconfiava e muito disso. :)

Analogamente, assim como cada idioma humano escrito tem seu conjunto de regras fixas chamado costumeiramente de gramática, cada linguagem de programação tem as suas as quais chamamos de sintaxe.

Uma metamorfose ambulante chamada Shell

Se um nome diz muito sobre algo, a "limitação" dos recursos que uma linguagem de programação utiliza/manipula e/ou é destinado, ou seja, os objetivos para qual foi projetada ("core" de trabalho) são pontos altamente consideráveis.

Por exemplo, citaremos o PHP, sigla que originalmente significava Personal Home Page, e que hoje é um um acrônimo recursivo para PHP: Hypertext Preprocessor devido à evolução de seu core.

No caso Shell, a sintaxe usada por um interpretador de comandos, que é o tradutor entre o sistema operacional e o usuário, é (em minha opinião), muito levada em consideração como caracterizador do mesmo.

Expandindo a explicação sobre este conceito reafirmo que a sintaxe é um determinante dos tipos de shell; é um fator usado para as denominar. A quantidade de recebimento ou não de herança de sintaxe e core entre elas e outras linguagens que originalmente não tenham sido criadas para serem utilizadas em Shells Scripts é também é considerada.

Para ficar mais clara esta afirmação, entre os muitos tipos de shell, serão citados aqui, resumidamente por economia de espaço e manutenção de foco, mas procurando seguir uma sequência cronológica motivada pela importância histórica para os sistemas GNU/Linux atuais, apenas alguns. Ei-los;

Nota: patches são altamente desejáveis para este tópico nos comentários, pois só usei bash/sh até hoje :(

Bourne shell (.sh)

Desenvolvido em 1977 por Stephen Bourne dos laboratórios AT&T. Por muito tempo foi o shell padrão de usuários em sistemas Unix. É a Shell padrão do super usuário (root) nas implementações *nix atuais.

Cshell (C Shell - .csh)

Como seu nome sugere, ela usa um modelo de sintaxe baseado na linguagem C. Talvez por ignorar o legado de facilidades didáticas do .sh está cada vez mais fora de uso no GNU/Linux. É mais utilizado em ambientes *BSD e Xenix.

Korn shell (.ksh)

Baseado no código do Cshell, foi o primeiro shell a introduzir recursos avançados.

Bash (Bourne again shell - .sh)

Atualmente é o mais poderoso e mais utilizado interpretador para Shell em sistemas GNU/Linux. Desenvolvido para o projeto GNU é o padrão de várias distribuições Linux. É compatível com o Bourne shell, além de incorporar os melhores recursos do C shell e do Korn Shell e adicionar outros consecutivamente a cada nova versão.

Devido a estas qualidades (herança de recursos manipuláveis e de sintaxe e amplo uso no GNU/Linux) esta será a gramática (tipo de shell e portanto a sintaxe) a ser estudada por nós no decorrer de nossos artigos.

Além disso, Shells Scripts, especialmente os escritos para bash, possuem um core de objetivo geral limitado apenas pelos recursos que o sistema oferece (comandos) e estes mesmos sujeitos a ampliação se aliados à criatividade e conhecimento do programador pela possibilidade de adicionar novos recursos ao mesmo (novos comandos), claro, paridas de acordo com o surgimento de novas necessidades à serem solucionadas. Logo a potencialidade evolutiva de seus super poderes (tanto do sistema quanto do programador) são óbvios.

Além destas vantagens e outras que tenho como presunção posteriormente explicar em outros artigos (se Deus quiser), Shells Scripts, oferecerem eficiência devastadora também em prototipagem.

    Próxima página

Páginas do artigo
   1. Obviamente desconfiado
   2. Santa prototipagem Tux-man
   3. O poder da inteligência e a falta que ela pode fazer...
Outros artigos deste autor

Samba 4 - Active Directory Open Source - Ubuntu 14.04.4

Backup automático em Shell Script

Construindo um portscanner TCP com Python

Básico sobre tratamento de exceções em Python 3.4

wpa_supplicant.conf - Configuração para WPA2-PSK

Leitura recomendada

Debugando shell scripts

Cansou do Konsole e GNOME-Terminal? Existem outros terminais, escolha o seu!

Programar em Shell - Script só para os baixinhos

Mini-tutorial Shell

Shell Script para WEB

  
Comentários
[1] Comentário enviado por maran em 23/07/2008 - 08:25h

hsuahusauhsahhusa, engraçado seus artigos ;)

[2] Comentário enviado por those em 23/07/2008 - 09:10h

Bem "didático" o artigo, porem não foi o que eu pensava ( pensei que seria pratico ahuaha).

Mais você escreve bem, até parece aquelas aulas de cursinho :P

abraços

[3] Comentário enviado por tondatto em 23/07/2008 - 11:14h

Não era bem o que eu esperava quando li o título, mas valeu a pena. Bom artigo!

[4] Comentário enviado por removido em 24/07/2008 - 00:56h

Antes de mais nada, muito obrigado por todos os comentários...

Ao seu momento os artigos terão exemplos práticos e uteis introduzidos com prazer...
Um dos meus objetivos é de que no final da série seja usado uma linguagem extremamente técnica sem ser esnobe. Presenteando com a dádiva de auto avaliação de conhecimentos adquiridos leitores menos experimentados no fardo
prazeroso de programar computadores.

[5] Comentário enviado por SMarcell em 24/07/2008 - 01:23h

-------------
Bash (Bourne again shell - .sh)

Atualmente é o mais poderoso...
--------------

Acho que você não conhece o zsh!


[6] Comentário enviado por ario em 24/07/2008 - 07:22h

Um pouco sobre o .dash também, principalmente para aqueles que usam ubuntu (acho que para todos que usam Debian e derivados também - aquem pode confirmar?)

Vejam a explicação de http://packages.ubuntu.com/pt-br/gutsy/dash, mas serve para todas as versões:

O shell Almquist do Debian - TPOSIX-compliant shell - he Debian Almquist Shell (dash) is a lightweight POSIX-compliant shell derived from ash.

"dash" é uma shell de acordo com POSIX muito menor que "bash". Nós aproveitamos isto para fazer deste shell a shell dos disquetes de instalação, onde espaço vale ouro.
Ele pode ser utilmente instalado como /bin/sh (porque ele executa scripts de certa forma mais rápido que o "bash") ou como o shell padrão tanto do superusuário ("root") quanto de um segundo usuário com um userid 0 (porque ele depende em poucas bibliotecas e consequentemente é menos afetado por um problema de atualização ou uma falha de disco). Ele também é útil para checar se um script usa apenas sintaxe POSIX.
"bash" é um shell melhor para a maioria dos usuários, já que ele tem algumas boas funcionalidades ausentes no "dash" e é uma parte necessária no sistema.

Bibliotecas de dependência no *ubuntu: libc6 e debianutils

Para trocar o dash por bash como padrão do sistema:

cd /bin
sudo rm -v sh
sudo ln -sf bash sh








[7] Comentário enviado por pintofree em 24/07/2008 - 13:36h

Muito bom o artigo parabens

[8] Comentário enviado por removido em 24/07/2008 - 23:53h

Magoei.. esperava algum conteudo prático... :`(

[9] Comentário enviado por removido em 25/07/2008 - 00:13h

Muito obrigado pelos comentários.

Peço calma aos que pediram conteúdo prático.
As intenções das informações passadas serão valiosas em artigos futuros. Aguardem...

Quanto aos tipos de interpretadores para shell eu também pensei em escrever sobre o cmd.exe e sub-sequentes... Além da subvivência do cshell no win (Hamilton C shell).

[10] Comentário enviado por igor_rocha em 11/06/2012 - 03:58h

rsrsrs.. Muito Bacana ^^

[11] Comentário enviado por marbreu em 10/08/2013 - 01:06h

gostei do conteudo meio doido + valeu


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts