Leitura de Entrada Segura e Múltiplas Variáveis
Nesta etapa final, você aprenderá duas técnicas mais avançadas:
-
Ler entrada segura (como senhas) sem exibir os caracteres na tela
-
Ler múltiplas variáveis com um único comando read
-
Abra seu script para edição:
nano input_reader.sh
-
Substitua o conteúdo existente pelo seguinte código:
#!/bin/bash
## Script demonstrating secure input and multiple variable reading
## Secure input reading with -s flag (no echo)
echo "Secure Input Example:"
read -p "Username: " username
read -s -p "Password: " password
echo ## Add a newline after password input
echo "Username entered: $username"
echo "Password length: ${#password} characters"
## Reading multiple variables at once
echo -e "\nMultiple Variable Example:"
read -p "Enter first name, last name, and age (separated by spaces): " first_name last_name age
echo "First name: $first_name"
echo "Last name: $last_name"
echo "Age: $age"
## Reading with a custom delimiter
echo -e "\nCustom Delimiter Example:"
read -p "Enter comma-separated values: " -d "," value1
echo ## Add a newline
echo "First value before comma: $value1"
echo -e "\nThank you for completing this lab on Linux input reading!"
Este script:
- Usa a flag
-s com read para ocultar a entrada (útil para senhas ou outras informações confidenciais)
- Mostra como ler múltiplas variáveis de uma única linha de entrada, fornecendo vários nomes de variáveis ao comando
read
- Demonstra a flag
-d para especificar um delimitador personalizado (em vez do caractere de nova linha padrão)
-
Salve o arquivo pressionando Ctrl+O, depois pressione Enter para confirmar o nome do arquivo e saia do nano pressionando Ctrl+X.
-
Execute o script para testá-lo:
./input_reader.sh
Exemplo de saída (suas entradas serão diferentes):
Secure Input Example:
Username: john_doe
Password:
Username entered: john_doe
Password length: 8 characters
Multiple Variable Example:
Enter first name, last name, and age (separated by spaces): John Doe 30
First name: John
Last name: Doe
Age: 30
Custom Delimiter Example:
Enter comma-separated values: test,
First value before comma: test
Thank you for completing this lab on Linux input reading!
A segurança é importante ao lidar com informações confidenciais, como senhas. A flag -s garante que os caracteres digitados não sejam exibidos na tela. Observe que, no exemplo da senha, o script mostra apenas o comprimento da senha para verificação, não a senha real.
Ler múltiplas variáveis de uma vez pode tornar seus scripts mais eficientes e fáceis de usar. Quando o comando read recebe vários nomes de variáveis, ele divide a entrada com base na variável de ambiente IFS (Internal Field Separator), que, por padrão, é espaço em branco (espaços, tabulações e novas linhas).
A flag -d permite que você altere o delimitador que sinaliza o final da entrada. Por padrão, read para em uma nova linha (quando você pressiona Enter), mas você pode alterá-lo para qualquer caractere, como uma vírgula no exemplo.