Shell Script Profissional
Descrição do livro
Você já passou por algo parecido? O inesquecível pesadelo de dar manutenção em um script mal feito. É tanto tempo perdido tentando achar o ponto certo, que às vezes o melhor é rescrever tudo.
O livro Shell Script Profissional ensina a fazer programas de qualidade em shell, com ênfase em código legível, portabilidade e manutenção futura. Melhore seus scripts, adicionando opções de linha de comando, arquivo de configuração, banco de dados e interface amigável ao usuário. Use a internet para rodar seu CGI. Domine as ferramentas do sistema, as expressões regulares e os caracteres de controle.
Indicado para administradores de sistemas, programadores, analistas, estudantes e usuários avançados. Indispensável para quem quer dominar o assunto. Os ensinamentos poderão ser usados em diversos sistemas, incluindo Unix, Linux, Mac e Windows.
Saiba mais em www.shellscript.com.br. Ver menos ▲
Sumário
Sumário
- Agradecimentos
- Sobre o autor
- Prefácio
- Capítulo 1 Programas sim, scripts não
- O que é um script?
- O que é um programa?
- Por que programar em shell?
- Programar em shell é diferente!
- Capítulo 2 Controle de qualidade
- Cabeçalho inicial
- Código limpo
- Código comentado
- TODO, FIXME e XXX
- Como comentar bem
- Variáveis padronizadas
- Funções funcionais
- Versionamento
- Histórico de mudanças
- Changelog
- NEWS
- Agradecimentos
- Capítulo 3 Chaves (flags)
- Como usar chaves
- Faça chaves robustas
- Chaves para configuração do usuário
- Detalhes sobre o uso de chaves
- Capítulo 4 Opções de linha de comando (-f, --foo)
- O formato “padrão” para as opções
- Opções clássicas para usar em seu programa
- Como adicionar opções a um programa
- Adicionando as opções -h, -V, --help e --version
- Adicionando opções específicas do programa
- Adicionando opções com argumentos
- Como (e quando) usar o getopts
- Capítulo 5 Depuração (debug)
- Verificação de sintaxe (-n)
- Debug simples (echo)
- Debug global (-x, -v)
- Debug setorizado (liga/desliga)
- Execução passo a passo
- Debug personalizado
- Debug categorizado
- Capítulo 6 Caracteres de controle
- Mostrando cores na tela
- Posicionando o cursor
- Comandos de som
- Outros comandos
- Exemplos
- Capítulo 7 Expressões regulares
- O que são expressões regulares
- Metacaracteres
- Conhecendo cada um dos metacaracteres
- O circunflexo ^
- O cifrão $
- A lista [ ]
- O ponto
- As chaves { }
- O curinga .* (AND)
- O ou | (OR)
- Os outros repetidores * + ?
- Detalhes, detalhes, detalhes
- Capítulo 8 Extração de dados da Internet
- Parsing de código HTML, XML e semelhantes
- Como remover todas as tags (curinga guloso)
- Como extrair links (URL)
- Extração de manchetes da Internet
- Extraindo manchetes do texto
- Extraindo manchetes do código HTML
- Extraindo manchetes do Feed XML
- Feeds RSS/Atom – Uma solução genérica
- Parsing de código HTML, XML e semelhantes
- Capítulo 9 Arquivos de configuração
- Tour pelos formatos já existentes
- Palavra-chave, brancos, valor
- Palavra-chave, brancos, valor opcional
- Palavra-chave, igual, valor opcional
- Palavra-chave, igual, valor
- Palavra-chave, dois-pontos, valor
- Palavra-chave, arroba opcional
- Componente, igual, valor numérico
- Comando, brancos, palavra-chave, brancos, valor
- Comando, brancos, palavra-chave, brancos, igual, valor
- Código Lisp
- Qual vai ser o seu formato?
- O denominador comum
- Especificação do formato
- Codificação do parser
- Parser passo a passo
- Melhorias no parser
- Evolução para um parser genérico
- Características de um parser genérico
- Parser do tipo conversor
- Integrando os programas
- Considerações de segurança
- Parser mais robusto e seguro
- Tour pelos formatos já existentes
- Capítulo 10 Banco de dados com arquivos texto
- Quando utilizar bancos textuais
- Definindo o formato do arquivo
- Formato CSV simplificado
- A chave primária
- Gerenciador do banco
- Agora o shell entra na conversa
- Codificação do gerenciador
- Bantex, o gerenciador do banco textual
- Zuser, o aplicativo que usa o banco
- Capítulo 11 Interfaces amigáveis com o Dialog
- Apresentação rápida do Dialog
- Zuserd, o Zuser com interface amigável
- Zuserd melhorado
- Pense no usuário
- Domine o Dialog
- Exemplos de todas as janelas
- Calendar
- Checklist
- Fselect
- Gauge
- Infobox
- Inputbox
- Menu
- Msgbox
- Passwordbox
- Radiolist
- Tailbox, Tailboxbg
- Textbox
- Timebox
- Yesno
- Opções de linha de comando
- Opções para definir os textos da caixa
- Opções para fazer ajustes no texto da caixa
- Opções para fazer ajustes na caixa
- Opções relativas aos dados informados pelo usuário
- Outras opções
- Opções que devem ser usadas sozinhas na linha de comando
- Parâmetros obrigatórios da linha de comando
- Respostas e ações do usuário
- Tipos de navegação entre telas
- Menu amarrado (em loop)
- Telas encadeadas (navegação sem volta)
- Navegação completa (ida e volta)
- Configuração das cores das caixas
- Exemplos de todas as janelas
- Dialog na interface gráfica (X11)
- Capítulo 12 Programação Web (CGI)
- Vantagens e desvantagens do CGI em Shell
- Preparação do ambiente CGI
- Configuração do Apache
- O primeiro CGI
- ...deve ser um executável
- ...deve ser executável pelo Apache
- ...deve informar o tipo do conteúdo (Content-type)
- Testando no navegador
- E não é que funciona?
- CGI gerando uma página HTML
- Introdução ao HTML
- Agora o CGI entra na brincadeira
- Transforme um programa normal em CGI
- Use modelos (Templates)
- Formulários, a interação com o usuário
- Etiquetas (tags) usadas em formulários
- O primeiro formulário
- A famigerada tripa
- A tripa não é assim tão simples (urldecode)
- Mais alguns segredos revelados
- Variáveis especiais do ambiente CGI
- STDIN, STDOUT e STDERR
- Como depurar CGIs (Debug)
- Como testar CGIs na linha de comando
- Considerações de segurança
- Capítulo 13 Dicas preciosas
- Evite o bash2, bash3, bashN
- Sempre use aspas
- Cuide com variáveis vazias
- Evite o eval
- Use && e || para comandos curtos
- Prefira o $(...) ao `...`
- Evite o uso inútil do ls
- Evite o uso inútil do cat
- Evite a pegadinha do while
- Cuidado com o IFS
- Leia man pages de outros sistemas
- Aprenda lendo códigos
- Faça uso minimalista das ferramentas
- Apêndice A Shell básico
- Apresentação
- O que é o shell
- Shell script
- Antes de começar
- O primeiro shell script
- Passos para criar um shell script
- Problemas na execução do script
- Comando não encontrado
- Permissão negada
- Erro de sintaxe
- O primeiro shell script (melhorado)
- Melhorar a saída na tela
- Interagir com o usuário
- Melhorar o código do script
- Rebobinando a fita
- Variáveis
- Detalhes sobre os comandos
- O comando test
- Tarefa: script que testa arquivos
- Conceitos mais avançados
- Recebimento de opções e parâmetros
- Expressões aritméticas
- If, for e while
- Exercícios
- Respostas dos exercícios
- Apresentação
- Apêndice B Shell no Linux, Mac e Windows
- Shell no Linux
- Instalação
- Execução
- Compatibilidade
- Shell no Mac
- Instalação
- Execução
- Compatibilidade
- tac
- seq
- dialog
- Shell no Windows
- Instalação
- Execução
- Compatibilidade
- Arquivos e diretórios
- Editor de textos
- Acentuação
- dialog
- Shell no Linux
- Apêndice C Análise das Funções ZZ
- Cabeçalho informativo
- Configuração facilitada
- Processo de inicialização
- zztool – Uma minibiblioteca
- zzajuda – Reaproveitamento dos comentários
- zzzz – Multiuso
- zzminusculas, zzmaiusculas – Um único sed
- zzuniq – Filtros espertos
- zzsenha – Firewall e $RANDOM
- zztrocaarquivos – Manipulação de arquivos
- zzbyte – Complicada, porém comentada
- zzss – Caracteres de controle
- zzhora – Festa dos builtins
- zzcpf – Cálculo do CPF
- zzcalculaip – Parece fácil
- zzarrumanome – Função ou programa?
- zzipinternet – Dados da Internet
- zzramones – Cache local
- zzloteria – Cache temporário em variável
- zzgoogle – Quebras de linha no sed
- zznoticiaslinux – Baixar notícias
- zzdolar – Magia negra com sed
- Funções do usuário (extras)
- Chamada pelo executável
- Apêndice D Caixa de ferramentas
- cat
- cut
- date
- diff
- echo
- find
- fmt
- grep
- head
- od
- paste
- printf
- rev
- sed
- seq
- sort
- tac
- tail
- tee
- tr
- uniq
- wc
- xargs
- Apêndice E Canivete Suíço
- Operadores
- Redirecionamento
- Variáveis especiais
- Expansão de variáveis
- Blocos e agrupamentos
- Opções do comando test
- Escapes do prompt (PS1)
- Escapes do comando echo
- Formatadores do comando date
- Formatadores do comando printf
- Letras do comando ls -l
- Curingas para nomes de arquivo (glob)
- Curingas para o comando case
- Metacaracteres nos aplicativos
- Sinais para usar com trap/kill/killall
- Códigos de retorno de comandos
- Códigos de cores (ANSI)
- Metacaracteres das expressões regulares
- Atalhos da linha de comando (set -o emacs)
- Caracteres ASCII imprimíveis (ISO-8859-1)
- If, For, Select, While, Until, Case
- Códigos prontos
- Mensagem final
- Índice remissivo
Livros relacionados
Opinião dos leitores
Rafael M B
Livro com didatica excelente muitos exemplos bem explicativo de como fazer script do zero parabens ao autor.
Ciro P
Super Show !!! Livro excelente!! Uso direto!! Abraço
Athos A L
Gostei muito do livro, é um livro divertido, com ele pude fazer muitas coisas, espero mais livros como esse. Gostei muito do autor.
Nilo C T
Excelente livro! O esclarecimento inicial de que o uso de colchetes na verdade é um apelido para o comando test já valeria a leitura, mas esse livro consegue desmistificar muitos outros conceitos. Em particular o capítulo das funçõeszz, quando ensina a calcular endereços de rede e de broadcast em seu fonte, é muito bom! O tom do livro é muito motivante, quase um "coachelheiro" (rs) e até a última frase do livro (literalmente) é inventivo. Parabéns Aurelio! Obrigado por compartilhar esse conhecimento.





