Ler entrada de dados com comando read em Shell Scripting

Ler entrada de dados com comando read em Shell Scripting

O comando read é uma ferramenta do Bash Shell Scripting que permite ao script ler uma entrada de dados do teclado digitada pelo usuário e armazená-la em uma variável para processamento.

Esse comando é útil para solicitar ao usuário informações que precisam ser fornecidas durante a execução de um script, como um nome de arquivo, senha ou número de identificação, entre outros.

Sintaxe

A sintaxe básica do comando read é a seguinte:

read [opções] nome_variavel

Onde “opções” são as opções do comando e “nome_variavel” é o nome da variável na qual o valor digitado pelo usuário será armazenado.

A seguir, são listadas algumas opções comuns do comando read:

  • -p: permite especificar uma mensagem para ser exibida antes da entrada de dados (string de prompt).
  • -n: permite limitar o número de caracteres que podem ser digitados, ou seja, define o número máximo de caracteres que o comando read lerá.
  • -s: permite ocultar a entrada de dados, como ao digitar uma senha ou outras informações confidenciais.
  • -r: Impede que o comando read interprete caracteres de escape (como ”, ‘\n’ e ‘\t’) como comandos especiais. Útil quando você deseja ler arquivos de texto brutos.
  • -a: Lê a entrada do usuário em um array.

Exemplos de uso do comando read

Vejamos alguns exemplos de uso do comando read em scripts simples do shell.

Exemplo 1. Vamos criar um arquivo de texto de nome “teste.sh” e digitar o código a seguir neste arquivo:

#!/bin/bash
echo "Qual é o seu nome?"
read nome
echo "Olá, $nome!"

Neste exemplo, o usuário é solicitado a digitar seu nome e a entrada é armazenada na variável “nome”. Em seguida, o script exibe uma mensagem de boas-vindas com o nome fornecido.

Para testar, salve e feche o arquivo, e dê permissão de execução ao arquivo no terminal:

$ chmod u+x teste.sh

E então rode o script:

$ ./teste.sh

Exemplo 2. Também é possível usar o comando read para solicitar várias informações de uma vez só, separando as variáveis com espaços ou vírgulas. Vamos alterar o script teste.sh para pedir o primeiro nome e a idade do usuário:

#!/bin/bash
read -p "Digite seu primeiro nome e idade: " nome idade
echo "Seu nome é $nome e você tem $idade anos."

Neste exemplo, o usuário é solicitado a digitar seu nome e sua idade, em sequência (pressionando enter somente no final) que são armazenados nas variáveis correspondentes.
Em seguida, o script exibe uma mensagem com as informações fornecidas pelo usuário.

Exemplo 3. Podemos ler dados sensíveis no terminal, como senhas, sem que sejam exibidas durante a digitação. Para isso usamos a opção -s do comando read, como mostra o exemplo a seguir:

#!/bin/bash
read -p "Digite seu nome de usuário: " nome
read -s -p "Entre com sua senha: " senha
echo -e "\nBem-vindo ao sistema, $nome!."
echo -e "\nA senha escolhida foi $senha."

Exemplo 4. Por padrão, o comando read em shell scripting interpreta um espaço como um separador de campo e, portanto, interrompe a leitura da string assim que encontrar um espaço.

Para ler uma string que contém espaços, é necessário ajustar o separador de campo para que o comando read reconheça a entrada do usuário como uma única string. Podemos fazer isso usando a variável de ambiente IFS (Internal Field Separator) do shell:

echo "Digite seu nome completo:"
IFS= read -r nome_completo
echo "Seu nome completo é $nome_completo"

No exemplo acima, o IFS= redefine a variável IFS para que nenhum caractere seja interpretado como separador de campo. Em seguida, o comando read é usado para ler a entrada do usuário e armazená-la na variável “nome_completo”.

Finalmente, a string digitada pelo usuário é exibida na tela usando o comando echo.

Com isso, o comando read irá ler a entrada do usuário até que a tecla “Enter” seja pressionada, permitindo que o usuário digite seu nome completo, mesmo com espaços em branco.

Conclusão

O comando read pode ser combinado com outras ferramentas do shell Bash para criar scripts mais avançados, como loops e condicionais. O importante é entender como o comando funciona e como ele pode ser usado para interagir com o usuário.

Para saber mais sobre o comando read e conhecer todas as suas opções, consulte as páginas de manual do comando com man read.

 

Sobre Fábio dos Reis (1195 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

Escreva um comentário

Seu e-mail não será divulgado


*