Bóson Treinamentos em Ciência e Tecnologia

Ler entrada de dados com comando read em Shell Scripting

Ler dados a partir do teclado com comando read em shell script

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:

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.

 

Sair da versão mobile