O comando ‘select’

select-1_abertura

O select é um comando interno do Bash e sua função é construir dinamicamente um menu a partir de uma lista de opções. Isto é, ele atribui um valor numérico para cada item, lista na tela, exibe um prompt e fica aguardando a seleção do usuário antes de seguir adiante.

E se você já utilizou o comando tzselect alguma vez na vida, saiba que já esbarrou com ele pela frente… 🙂

Continuar lendo

Anúncios

Substituição de processos no Bash

proc_subst-1_abertura

Um recurso muito útil do Bash, e também de outras shells em sistemas UNIX, é o pipe¹ e com ele é possível direcionar a saída de um programa para a entrada de outro. A substituição de processos — ou process substitution — funciona de modo parecido porém aqui é possível se direcionar a saída de mais de um programa para a entrada de outro como se este fossem arquivos.

(¹) Sim, outros sistemas não UNIX também possuem este recurso mas implementado de modo bem diferente as vezes.

Continuar lendo

Controle de jobs nos scripts em Bash

controle_jobs-2_abertura

No final do controle de jobs do Bash citei de dois comandos que fazem parte do controle de jobs do Bash mas que agem dentro dos scripts, não dei maiores detalhes mas prometi falar deles em outra oportunidade. São o suspend (que pausa a execução da shell) e o wait (que faz a shell aguardar o término de sub processos antes de prosseguir com a execução).

E, sim, esta é a “outra oportunidade”! 🙂

Continuar lendo

Controle de jobs do Bash

controle_jobs-1_abertura

O sistema de controle de jobs do Bash — ou de outra shell padrão POSIX — consiste de um recurso que permite de forma seletiva tanto suspender como restaurar a execução de processos em um sistema. Ele é implementado em conjunto pelo kernel do sistema operacional (mecanismos de controle) e o Bash (interface com o usuário) e antes do surgimento/popularização do console virtual¹, screen, Xterm etc, era a forma de se executar facilmente mais de um programa em um terminal UNIX.

E, claro, ainda continua sendo um recurso muito útil, principalmente quando o único acesso que se tem ao host é via SSH e sem privilégios para instalar o byobu… 🙂

(¹) Por exemplo, me recordo que o BSD/OS possuía somente um console em modo texto.

Continuar lendo

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