/bashscripting

Texto em português (pt_BR) sobre programação de shell scripts para bash

Primary LanguageShell

Introdução

A versão web de leitura amigável deste texto está disponível aqui: https://meleu.gitbooks.io/bashscripting/content/

Este texto foi originalmente escrito em 2002 (link do original), Esta versão aqui é uma tentativa de atualizar o texto, baseado em práticas mais modernas de programação shell, e também tentando aproveitar dos recursos colaborativos presentes no github.

Contribuições

Existem duas maneiras de contribuir: enviando melhorias via Pull Requests para o repositório do livro ou doações.

Para contribuir com melhorias para o livro, veja as instruções em {{ book.como_contribuir }}.

Para contribuir com doações (ficarei muito grato e usarei isso como um estímulo para continuar atualizando este livro):

PicPay

Se você não tem conta no PicPay, pode criar a sua através deste link que você ganha R$ 10 de cashback no seu primeiro pagamento.

PayPal

Donate with PayPal

Apresentação

Estou partindo do princípio de que se você está aqui lendo isso significa que não tem dúvidas quanto a utilidade de um shell script. Então podemos pular esta parte.

Este livro é mantido por meleu. Sou usuário do Linux desde 1999, e desde então fascinado pelo Linux, linha de comando, shell script, linguagem C, redes e nerdezas afins. Sou formado em Ciência da Computação mas o acaso me fez partir para outra área. Em meados de 2016 recomecei a praticar bastante bash scripting quando comecei a me envolver com o projeto RetroPie e a partir daí me animei em revisitar este texto aqui.

Pré-requisitos

  • Vontade de aprender.
  • Alguma mínima familiaridade com os comandos básicos do UNIX.
  • Acesso a um terminal.
  • (Uma noçãozinha de algoritmos ajudaria, mas não é obrigatório.)

Se você não tem noção alguma de linha de comando, recomendo a leitura do Guia Foca Linux ou algum outro desses tutoriais que existem pela web.

Se por algum motivo você só tem acesso a uma máquina Windows e não pode instalar o Linux (computador não é seu, é do trabalho, da escola/faculdade), recomendo fortemente que você conheça o projeto Cygwin. Trata-se de uma forma de obter um ambiente bastante similar à uma distribuição Linux rodando direto do Windows. Sem necessidade de máquina virtual alguma.

Se você não tem acesso a computador algum e for fanático o suficiente para praticar no smartphone Android, procure um app chamado termux.

É de extrema importância que você vá praticando assim que aprender algo novo, isso ajuda a se familiarizar e memorizar as coisas. Só ficar lendo não vai ajudar muito.

Todos os códigos presentes nesse texto podem ser encontrados em https://github.com/meleu/bashscripting/tree/master/src.

Versão do bash

Atenção nas versões do bash em que eu fiz os meus testes, pois em versões antigas recursos podem não funcionar. Resumidamente: se você tem da versão 4 em diante, está em boas condições.

Esta é a versão que usei para testar no Cygwin:

$ bash --version
GNU bash, versão 4.4.12(3)-release (x86_64-unknown-cygwin)

E esta é a versão que usei para testar no meu Linux Mint 18.1:

$ bash --version
GNU bash, versão 4.3.46(1)-release (x86_64-pc-linux-gnu)

Agradecimentos

Quando comecei a contribuir com o projeto RetroPie, minha habilidade com bash avançou exponencialmente. O principal agradecimento vai para eles.

A medida que este texto for recebendo contribuições, o nome dos contribuintes vai aparecendo aqui:

Licença

Este texto está sendo publicado sob a licença Creative Commons CC BY-NC-SA 4.0. Resumidamente a licença é o seguinte:

Você tem o direito de...

  • Compartilhar: copiar e redistribuir o material em qualquer suporte ou formato.
  • Adaptar: remixar, transformar, e criar a partir do material

Você tem os direitos acima desde que obedecidos os termos abaixo:

  • Atribuição: Você deve dar o crédito apropriado, prover um link para a licença e indicar se mudanças foram feitas. Você deve fazê-lo em qualquer circunstância razoável, mas de maneira alguma que sugira ao licenciante a apoiar você ou o seu uso.
  • Não Comercial: Você não pode usar o material para fins comerciais.
  • CompartilhaIgual: Se você remixar, transformar, ou criar a partir do material, tem de distribuir as suas contribuições sob a mesma licença que o original.

Licença Creative Commons
Este obra está licenciada com uma Licença Creative Commons Atribuição-NãoComercial-CompartilhaIgual 4.0 Internacional.