Explorando a entrada de dados com READ em Bash Shell

Mostro algumas opções úteis no comando read que podem ajudar na hora de escrever certas funcionalidades nos scripts em Bash Shell, algumas me ajudaram recentemente.

[ Hits: 67.355 ]

Por: Raimundo Alves Portela em 11/10/2011 | Blog: http://portelanet.com


Mais opções e conclusão



Limitando a quantidade de caracteres a serem lidos

read -n NUMERO

A opção -n faz o read ler até a quantidade de caracteres especificada em NUMERO.

Útil para fazer menus em que apenas um caractere deve ser informado, sem a necessidade do ENTER para finalizar, pois a condição de -n já foi atendida.

Exemplo:

#!/bin/bash
read -r MSG < "arquivo.txt"
echo -e "$MSG"

Exemplo de conteúdo no arquivo:

À XYZ LTDA\n\tParabéns pelos serviços prestados!\nAtt,\nPortela

./enviaEmail.sh

À XYZ LTDA
    Parabéns pelos serviços prestados!
Att,
Portela

Conclusão

Bash Shell é uma linguagem tradicionalmente usada para fazermos pequenos scripts para automatizar tarefas no dia a dia, mas nada impede de usarmos seus poderes (recursos e possibilidades de expansão) para construímos aplicações que conversem com o usuário.

Ao "conversar" com o usuário nossa aplicação precisa mostrar e receber informação, então procurei mostrar nesse material algumas opções úteis que temos ao coletar a entrada de dados usando o comando read, e passei alguns exemplos para facilitar o entendimento.

Bem pessoal é isso, espero que tenham gostado.

Abraços.

Página anterior    

Páginas do artigo
   1. Usando as opções do read
   2. Mais opções e conclusão
Outros artigos deste autor

StarDict - software de tradução de ótima qualidade!

Otimizando o uso do seu disco rígido usando a mesma /home para várias distribuições

Apresentando o Yad - "zenity melhorado"

Enviar e-mail pelo terminal com mutt

Mostrando dicas ao iniciar o terminal

Leitura recomendada

AWK - Manipulação de arquivos de texto

Slackware - Script de instalação de programas

Criando um banner em flash no Linux

AWK - Introdução

Como matar um processo - kill, killall, pkill e xkill

  
Comentários
[1] Comentário enviado por azk em 11/10/2011 - 15:10h

Muito bom!
Vai me ajudar bastante nos meus estudos!
Valeu!

[2] Comentário enviado por ember em 12/10/2011 - 20:18h

haha legal cara, isso pode ser usado em C neh?
so mto novo em linux e em programacao, mas minha esperanca era usar isso read -d'w' com um timeout, tem como?
essa leitura pode ser colhida numa variavel em um prog c? dae nao precisa usar a getch do ncurses ne? ncurses nao ta funfando...
EDIT: agora q vi a parte 2 foi mal... mas como implemento em c? da?

[3] Comentário enviado por rai3mb em 13/10/2011 - 01:58h

Ola @ember
... mas minha esperanca era usar isso read -d'w' com um timeout, tem como?
Tem você pode juntar os diversos parâmetros para alcançar seu objetivo, veja:

read -p 'Digite algo em 5 segundos : (w - para sair)' -t 5 -d'w'

...essa leitura pode ser colhida numa variavel em um prog c?

Acho que não, não conheço muito ainda de C, mas fiz um teste com a função system e não deu certo:

#include <stdio.h>
#include <strings.h>
#include <stdlib.h>

int main(int argc, char **argv) {
system("read -t 5'");
}

Usando o parâmetro da erro:

read: 1: Illegal option -t






Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts