capturando erros no bash

Como detectar precisamente onde seu script está quebrando

Este artigo é parte da série “Práticas de programação shell que mudarão sua vida” Os artigos da série são: deixe seu bash mais rigoroso use um trap para saber exatamente onde seu script quebrou use o shellcheck No artigo anterior aprendemos como fazer o nosso script falhar o mais rápido possível e entedemos qual é a grande vantagem disso. Neste artigo veremos como obter uma indicação bem direta e precisa de onde o nosso script falhou. ...

abril 15, 2022 · 10 minutos · meleu
habilitando bash strict-mode

Deixe o bash mais rigoroso com seu script e evite dores de cabeça

Este artigo é parte da série “Práticas de programação shell que mudarão sua vida” Os artigos da série são: deixe seu bash mais rigoroso use um trap para saber exatamente onde seu script quebrou use o shellcheck No livro The Art of Unix Programming, o Eric S. Raymond diz o seguinte: Quando precisar falhar, falhe ruidosamente e o mais cedo possível. Neste artigo eu vou tratar da situação de “falhar o mais cedo possível”. Em um outro artigo eu vou falar sobre o “falhar ruidosamente”. ...

abril 7, 2022 · 7 minutos · meleu
configuração do bash history no .bashrc

Melhorando seu .bash_history

Neste artigo veremos algumas configurações interessantes para se fazer no seu ambiente de forma a melhorar o seu .bash_history e o output do comando history. Motivação Eu geralmente uso o tmux com várias sessões de bash abertas, e como raramente eu desligo o computador, muitas vezes essas sessões duram dias. Normalmente o bash grava o histórico da sessão atual no .bash_history apenas ao final da sessão. O problema disso é que muitas vezes eu quero consultar o histórico de comandos em busca de algo que fiz dias atrás, mas o como eu não encerrei a sessão onde o comando foi executado, esse histórico ainda não foi salvo no meu .bash_history. ...

março 30, 2022 · 5 minutos · meleu
output de covid-ranking.sh

Como criar um gráfico de barras no terminal listando os países com mais ocorrências de morte pelo Coronavirus

Recentemente descobri uma ferramenta bem bacaninha que serve para gerar simples e belos gráficos de barra diretamente no terminal. A ferramenta se chama termgraph e seu repositório no github é https://github.com/mkaz/termgraph. E aproveitando a enorme oferta de dados disponível na web sobre a epidemia do Coronavírus, achei que esse seria um bom caso de uso para aprendermos a usar a ferramenta. Vamos obter uma lista com as 10 nações com maior número de mortes por COVID-19 e gerar um gráfico de barras mostrando esse ranking. ...

março 27, 2020 · 8 minutos · meleu
output de covid.sh

Consulte os números de casos e mortes causadas pelo Coronavirus diretamente do terminal

O mundo está em pânico! O tal do Coronavirus está se alastrando rapidamente pelo mundo. Mesmo que exista uma turma tentando minimizar o alarde e nos convencer que não tem necessidade de tanto pânico, dizendo que existem/existiram outras doenças matando muito mais… O melhor é se prevenir! Uma das recomendações que estão sendo dadas é para que as pessoas não saiam de casa. E já que vamos ficar em casa (stay at /home), que tal um pouco de nerdeza para distrair? ...

março 17, 2020 · 8 minutos · meleu
função shortener()

Como gerar uma URL curta no bitly direto da linha de comando

Um conhecido serviço de “encurtamento de URL” que existe na web é o https://bitly.com. Neste site podemos criar versões mais curtas para URLs grandes. Se você já se deparou com links do tipo bit.ly/AlgumaCoisa, sabe do que estou falando, certo? Neste artigo vamos usar a API do bitly.com através do curl e assim criar o nosso próprio “URL shortener” para usar direto da linha de comando. Se você não conhece o curl, trata-se de um comando bastante poderoso e útil, que serve para transferir dados de/para servidores usando diversos protocolos (HTTP, HTTPS, FTP, TELNET, e muitos outros). Neste artigo veremos apenas uma pequena fração de todo o poder do curl. ...

fevereiro 15, 2020 · 6 minutos · meleu
parametros no shell script

Como lidar com parâmetros passados na linha de comando em shell scripts

O shell script é uma “linguagem” muito permissiva. Não é necessário muito conhecimento pra você começar a fazer algumas coisas legais. Isso é bom, fazer coisas legais é divertido, mas também tem um perigo embutido: você pode acabar ir levando adiante uma prática ruim que funciona em determinado cenário mas que em outro pode trazer consequências indesejadas (a não utilização de aspas duplas pra proteger suas variáveis é um exemplo dessas práticas ruins). ...

fevereiro 2, 2020 · 9 minutos · meleu
problemas ao não usar aspas

Por que você deve usar aspas SEMPRE

Esse post é para tentar convencê-los de que suas variáveis devem ser protegidas com aspas duplas SEMPRE. E quando eu digo sempre, é sempre mesmo. Até mesmo em $(subshells). OK… Tá bom. As vezes precisamos referenciar variáveis sem aspas, mas faça isso só quando for estritamente necessário. E quando isso acontecer, deixe um comentário falando sobre esta necessidade. Insisto: Não fique perdendo tempo pensando “Uhmm… Será que tem problema se eu deixar essa variável sem aspas?”. Simplesmente use-as. E quando precisar não usá-las, deixe isso claro através de um comentário. ...

janeiro 26, 2020 · 4 minutos · meleu
função camelCase()

Como converter de maiúsculas para minúsculas (e vice-versa) com bash

Desde a versão 4.0 do bash (lançada em 2009) nós temos disponível alguns operadores para lidar com case conversion. Nos exemplos a seguir imagine que var contém uma string: ${var,,}: conteúdo de var todo em minúsculas ${var^^}: conteúdo de var todo em maiúsculas ${var,}: primeira letra de var minúscula ${var^}: primeira letra de var maiúscula ${var~~}: inverte de maiúsculo para minúsculo, ou vice-versa, todo o conteúdo de var ${var~}: inverte de maiúsculo para minúsculo, ou vice-versa, a primeira letra de var Funções Para Case Conversion De posse desse conhecimento, vamos fazer nossas versões bash de toLower() e toUpper() e, por que não?, de camelCase(). ...

janeiro 25, 2020 · 3 minutos · meleu
loop while para percorrer o arquivo linha a linha

Como ler o conteúdo de um arquivo linha por linha em shell script

Uma das coisas que você certamente vai encarar um dia como um programador de shell scripts é a necessidade de percorrer um arquivo inteiro lendo cada linha e fazer algo com este conteúdo. Veremos neste artigo como fazer isso de maneira segura, robusta e evitando as possíveis armadilhas que podem aparecer no caminho. Pra adiantar seu lado, vou logo de cara lhe dar a solução que eu considero mais robusta. Em seguida explica cada detalhe dessa estrutura. ...

janeiro 21, 2020 · 9 minutos · meleu