Shell Script: Primeiros conceitos

Introdução ao Shell Script, esta poderosa ferramenta que facilita bastante a administração dos sistemas Linux. Com este artigo, espero dar base àqueles que ainda não conhecem o Shell Script para começar a desenvolver seus próprios scripts e entender também scripts feitos por outros membros da comunidade.

[ Hits: 116.667 ]

Por: Pablo Carlos de S. Furtado em 21/04/2005


Introdução



Para começar, vamos fazer um brevíssima explicação do que é Shell Script.

Shell é o "prompt de comando" do usuário, é onde são digitados os comandos para serem executados no sistema, também chamado por alguns de "interpretador de comandos".

Os scripts nada mais são do que arquivos executáveis de texto que contém comandos do sistema para serem executados em conjunto, facilitando a vida do administrador e também dos outros usuários na execução das mais diversas tarefas no sistema.

Algumas simples, porém importantes dicas para o começo:
  • Não é aconselhável escrever ou executar scripts como "root", pois ao executar uma linha "destruidora", pode-se comprometer o sistema, o que não acontecerá usando-se um usuário comum :)
  • Também não é muito aconselhável executar scripts feitos por "estranhos" sem dar uma olhada no conteúdo deles, principalmente como "root"!

Partindo para os scripts propriamente ditos:

Por exemplo, se sempre que for instalar um programa através dos fontes (uma simples tarefa para o administrador do sistema), você precisar digitar os 4 comandos a seguir:

$ ./configure
$ make
$ su
# make install


Então, um arquivo de texto contendo estes 4 comandos resumiria a execução da tarefa em apenas um comando (o comando para executar o script).

Com um editor de texto qualquer, indico uso o VI, pois ele vai colorindo o código do script conforme vamos escrevendo, ajudando a detectar alguns erros bobos (somente minha opinião, viva a liberdade de escolha!), crie um arquivo chamado "instalador". Neste arquivo, insira as seguintes linhas:

#! /bin/bash
./configure
make
su
make install

Agora vamos tornar este arquivo de texto em um arquivo executável:

$ chmod +x instalar

Para executar o script, basta digitar, no shell, o nome do script com um "./" antes. No caso do nosso exemplo ficaria assim:

$ ./instalador

Assim, se não ocorrer nenhum erro durante algum dos processos acima, você terá o programa instalado. Não esqueçamos que, por causa do comando "su", será necessária a digitação da senha do super-usuário.

OBS: Neste caso, para testar este script, ele precisará estar dentro do diretório onde se encontram os fontes do programa.

Agora vamos partir para o desenvolvimento de um script um pouco mais complexo, para adquirir mais alguns conceitos e começar a "caminhar com as próprias pernas"!

    Próxima página

Páginas do artigo
   1. Introdução
   2. Primeiro script
   3. Entendendo linha-a-linha
   4. A "força" do Shell Script
Outros artigos deste autor

Onde os iniciantes devem buscar soluções para os seus problemas

Leitura recomendada

Debugando shell scripts

Simples e rápido: matando todos os processos de um usuário

Recursos avançados do bash que você não aprende na escola

Cobrando com o SQUID

Variáveis, if, else e unless em Ruby

  
Comentários
[1] Comentário enviado por leoberbert em 21/04/2005 - 13:20h

Caro amigo,

Estou aqui para parabenizá-lo pelo artigo, pois ainda não tinha visto nenhum tutorial que explicasse com clareza essa incrível ferramenta, ficou muito bom e espero que em breve vc estege postando algo mais que faça referência ao mesmo, parabéns pelo ótimo artigo.

Leonardo Berbert Gomes.

[2] Comentário enviado por davidsonpaulo em 21/04/2005 - 16:32h

Aew! Granda Pablo! Tah destruindo nos artigos hein guri! Imagina quando esse cara tiver a sua maquina potente em casa pra praticar... teremos mais um poderoso pinguim contribuindo para o crescimento da comunidade. Eh isso ae guri, parabens!

[3] Comentário enviado por removido em 21/04/2005 - 22:03h

OPa!,

Parabéns amigo pelo artigo essa introdução ajuda muitos concerteza. Só que gostaria de comentar algo na parte que você trabalha com variaveis e diz que são strings.

como segue:
===========================================================
Nesta linha, o comando read guarda o que foi respondido pelo usuário na string part. O nome da string pode ser o que você quiser, usei part porque conterá o nome da partição a ser montada.
===========================================================

corrigido:
===========================================================
Nesta linha, o comando read guarda o que foi respondido pelo usuário na >>variavel<< part. O nome da >>>variavel<<< pode ser o que você quiser, usei part porque conterá o nome da partição a ser montada.
===========================================================

Pelo que sei string é o que vai dentro da variavel nesse caso e não sendo a variavel. Ao menos em outras linguagens toda variavel é indentificada quando "guarda" temporariamente na memoria da execução do script informações.


--
Abs,
guinet gmail com


[4] Comentário enviado por engos em 22/04/2005 - 09:35h

Muito bom o artigo.

Acho que já foi comentado o que tinha de ser, por isso parabéns pela simplicidade e praticidade.

[]s

[5] Comentário enviado por beetle_juice em 22/04/2005 - 23:18h

Muito bom artigo, gostaria de ver mais desses aki no v.o.l esse jah foi para o meu espaço "favoritos"!
Parabéns..
t+
[]'s
beetle_juice

[6] Comentário enviado por feraf em 23/04/2005 - 09:19h

Só há um pequeno problema com o script do 'instalador':

Quando você da o comando 'su', ele interrompe o script, e só continua ele quando você da um 'exit' e sai do root. Uma alternativa seria entrar no su já passando um comando a ser executado. Ele irá entrar como root, executar o comando e sair. Somente substituindo os comandos 'su' e 'make install' por:

su -c 'make install'

Felipe

[7] Comentário enviado por removido em 23/04/2005 - 09:30h

Boa introdução. Mas fazer scripts, como descobri, é conhecer sobre os comandos dos programas Linux e à integrá-los entre si.

E é sim possível fazer coisas incríveis com essa modalidade de programação, mas pra isso é necessário profundo conhecimento da "linha de comando".

Para quem procura se aprofundar, recomendo o excelente livro Programação Shell Linux JULIO CEZAR NEVES .

[8] Comentário enviado por pexao em 23/04/2005 - 11:01h

Parabens pelo artigo.

Porem vi um erro na primeira pagina.

Voce tornou o arquivo executavel que se chama:
--------------------------------------------------------------
Agora vamos tornar este arquivo de texto em um arquivo executável:

$ chmod +x instalar
--------------------------------------------------------------

E depois utilizou o arquivo para executar:
--------------------------------------------------------------
$ ./instalador
--------------------------------------------------------------

Sei que parece simples porem quando uma pessoa erra apenas uma virgula, pode gerar um problema enorme.
Fica a dica ae.
:)

[ ]'

Fernando Pereira

[9] Comentário enviado por pablocarlos em 23/04/2005 - 11:34h

E aí pessoal !
Queria agradecer a todos que leram o artigo e a todos os que corrigiram os erros q foram aparecendo(que por sinal sao bem graves, mesmo que pequenos)...
Acontece que não tenho tanto tempo de bagagem Linux...mas nao quero justificar erros, estou aí pra aprender c/ eles e c/ toda a comunidade.
Obrigado e espero que, mesmo c/ todos os erros, tenha ajudado alguém !

[10] Comentário enviado por removido em 23/04/2005 - 18:46h

Bom seu artigo, é bem fácil de entender.

[11] Comentário enviado por agk em 28/04/2005 - 21:29h

Parabéns pelo artigo, se eu tivesse lido isso quando estava aprendendo shell script teria me ajudado muito com certeza. Excelente artigo para que está começando a navegar pelas linha de comando, ehehe.
Sugestão: em um próximo artigo procure aprofundar um pouco mais, utilizando váriáveis do sistema, comandos como while, for, entre outros. Shell Script tem muita coisa, muita mesmo.

[12] Comentário enviado por Hernando em 07/06/2005 - 10:10h

Parabéns... ótimo artigo... Porque tu não faz agora um onde a partição e o ponto de montagem são variaveis pré definidas e acionadas atraves de um comando simples tipo:

1) Partição01
2) Partição02
3) Partição...

e consequentemente

1) PontoMNT01
1) PontoMNT02
1) PontoMNT...

Eu já o tenho aqui pois acho muito util na hora de montar pontos de rede em outra plataforma onde tenho que ficar digitando milhões de coisa... Só não postei para dar a dica pra tu dar continuação ao teu artigo

Abraços

[13] Comentário enviado por mailws em 11/11/2005 - 20:09h

Parabéns. Agora quero saber, se tem como, fazer um link para o arquivo que agente acabou de construir, sem precisar toda vez que for executar, digitar "./arquivo".

[14] Comentário enviado por mailws em 21/11/2005 - 04:30h

Excellente, bem explicado!!! Parabéns.

[15] Comentário enviado por parolin em 14/02/2006 - 14:24h

Muito bem escrito e explicado...

Excelente para iniciantes...

Parolin

[16] Comentário enviado por acollucci em 04/04/2006 - 09:32h

afff enfim oque eu precisava

vlw pela contribuição

[17] Comentário enviado por antoniojbs em 05/09/2006 - 12:59h

Parabéns pablocarlos seu artigos esta me ajudando muito,um artigo bem elaborado para quem esta començando e não sabe nada de shel como eu,mas estou fazendo muitas buscas e lendo muito a respeito da linguagem espero que com a ajuda d pessoas como vc eu consiga me tornar pelo menos razoavel......

[18] Comentário enviado por Rubico em 27/04/2007 - 22:37h

A melhor explicação que já li sobre Shell Script!
Parabéns pela inteligência e criatividade!

[19] Comentário enviado por nukelinux em 08/06/2007 - 17:00h

Parabéns pelo artigo!!! Ficou muito bom!!!

[20] Comentário enviado por luizhacker em 08/12/2007 - 14:38h

Excelente artigo!!!

[21] Comentário enviado por GilsonDeElt em 31/12/2007 - 17:37h

Cara, d+!

Um dos melhores que já li sobre Shell Script para iniciantes.
Tô no Linux a um tempo, mas agora que tô começando a brincar mais com o Shell.

Uma coisa:
o script da 2ª página só pode ser executado pelo root
para executá-lo como usuário comum, devo mudar as permissões de uso do comando?

No mais, parabéns pelo artigo, cara!
Caso eu tenha alguma idéia pra ajudar nos próximos artigos, eu te mando, hehe.

[22] Comentário enviado por yakuza em 04/03/2008 - 00:34h

Mandou bem!
Parabéns.

[23] Comentário enviado por educanario em 18/08/2008 - 15:01h

Exeleten artigo amigo.

[24] Comentário enviado por felipe73 em 03/05/2009 - 03:00h

Vlw, to começando com shellscript agora e este artigo ajudou bastante!

[25] Comentário enviado por marcusmc em 16/06/2009 - 03:18h

Belo ponto de partida para quem está começando.

Valeu pela contrbuição.

[26] Comentário enviado por piiruck@ em 27/04/2010 - 12:13h

Bom Eu quero saber como eu executo o shells aonde eu execute não entendi essa parte qual programa ultilizo aonde escrevo os comandos para exectar me ajuda ae Vlw...


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts