Declaração de variáveis no Bash

declare1_abertura

Depois de ter tratado, não necessariamente nesta ordem, de arrays, números inteiros e strings em Bash seria interessante fazer duas coisas: (i) citar os outros tipos de variáveis disponíveis e (ii) tratar de opções bastante interessantes disponíveis no comando declare. Ele é utilizado para definir tanto o tipo da variável como também habilitar, ou desabilitar, determinados atributos desta.

Para facilitar seguirei a ordem das opções conforme estão listadas em “help declare” e assim aproveitar para também comentar algo mais sobre os tipos já citados.

Continuar lendo

Anúncios

Troca de caixa em Bash (método alternativo)

upperlower1_abertura

Algo para complementar a manipulação de strings em Bash com uma última dica sobre o assunto de conversão de caixa dos caracteres — aquela coisa de se mudar entre maiúsculas e minúsculas. Minha primeira sugestão foi usar o comando declare para alterar os atributos da string e deixar o Bash cuidando disto sozinho e até propor duas funções¹ para simplificar a tarefa. Porém, como sempre, existe outro modo para fazer a mesma coisa. 🙂

(¹) Mais precisamente as funções toupper() e tolower(), análogas às suas homônimas em AWK.

Continuar lendo

Inicializando com Linux em USB no MacBook

enterprise1_abertura

Quem tem um MacBook¹ sabe da frustração de não conseguir inicializá-lo normalmente em Linux a partir de dispositivos USB e tendo de recorrer à alguma mídia óptica — de preferência as regraváveis. Depois de tentar sem sucesso diversos tutoriais e ferramentas até já tinha desistido quando, por acidente, uma publicação sobre a disponibilização do PIXEL para computadores no blog do Raspberry Pi mostrou a solução para o problema.

(¹) Não só o MacBook mas com certeza qualquer outro computador com processador Intel fabricado pela Apple.

Continuar lendo

Arrays em Bash

arraysbash_abertura

Todos sabem que o Bash possui suporte a variáveis e que estas podem ser sequências de caracteres — strings — ou então números inteiros mas o que poucos sabem (ou se esquecem as vezes) é que também há suporte para arrays.

O que acaba sendo bastante útil, aliás, para economizar o uso awk, cut ou sed dentro dos scripts.

Continuar lendo

REGEX direto no Bash

regexbash_abertura.png

Geralmente quando validava uma sequência de caracteres em shell script usando uma expressão regular eu recorria a uma ferramenta externa (egrep, sed etc) para fazê-lo —  algo como neste exemplo de validação de endereços de e-mail utilizando o egrep:

$ echo "usuario@email.com" |\
  egrep "[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$" >/dev/null ; echo $?
0
$ echo "usuario%email-123" |\
 egrep "[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$" >/dev/null ;  echo $?
1

Ou seja, o retorno do valor 0 para significando verdadeiro e do valor 1 indicando falso.

Continuar lendo

O comando ‘fold’

fold-1_abertura.png

O comando fold é um daqueles programas desconhecidos que sempre são instalados¹, que acabamos descobrindo por acaso e que depois ficamos nos perguntando como conseguíamos viver sem. 🙂

Basicamente o fold serve para quebrar as linhas de um arquivo texto para fazê-lo “caber” corretamente na largura da sua tela, impressora ou mesmo então para uma página web — sim, é o que uso para arrumar as saídas dos comandos para publicar aqui,

(¹) Ele integra o pacote GNU core utilities.

Continuar lendo