Visão Geral
Abordamos o uso essencial do comando read, indispensável para o tratamento de entrada interativa do usuário e análise (parsing) de dados de texto ao criar scripts Bash no Linux. Do tratamento básico de entrada ao mascaramento de senhas (-s), tempo limite (-t), divisão por delimitadores (IFS) e o processamento de arquivos linha por linha com loops while — técnica amplamente utilizada na prática —, você poderá dominar o comando por completo.
1. Fundamentos do Comando read, Prompt (-p) e Definição de Valores Padrão
Para criar e acessar um diretório dedicado para a prática com o comando read, execute o comando mkdir -p ~/read-demo && cd ~/read-demo.

O comando read lê uma linha da entrada padrão e a armazena em uma variável. Com a opção -p, você pode exibir uma mensagem de prompt orientando o usuário, e usar a sintaxe ${nome_da_variavel:-valor_padrao} para atribuir um valor padrão substituto caso a variável esteja vazia.
No resultado da execução, como nenhuma entrada direta foi passada ao comando read, a variável username permaneceu vazia, resultando na exibição do valor padrão guest de acordo com a sintaxe ${username:-guest}.
⚙️ [Principais Opções]
-p : Especifica a string do prompt de orientação a ser exibida na tela antes de receber a entrada.-s : Ativa o modo secreto, ocultando os caracteres digitados na tela ao receber informações confidenciais, como senhas.-t : Define um tempo limite de espera (em segundos), encerrando a leitura caso o tempo especificado expire.-n : Limita a entrada ao número especificado de caracteres, encerrando imediatamente sem a necessidade de pressionar Enter.-r : Não interpreta o caractere de barra invertida (\) como caractere de escape, lendo o texto exatamente em sua forma original.-a : Divide as palavras inseridas com base em espaços em branco e as armazena sequencialmente em uma variável de array.-d : Especifica um caractere delimitador personalizado para encerrar a entrada em vez da quebra de linha.

2. Mascaramento de Senha (-s) e Limite de Tempo de Entrada (-t)
Para continuar com a prática, execute o comando cd ~/read-demo para navegar até o diretório ~/read-demo criado anteriormente.

A entrada é recebida com a opção -s para mascarar a tela de digitação e a opção -t 5 para definir um tempo limite de 5 segundos.
Como a senha foi enviada com sucesso dentro do limite de tempo, o código de status de saída ($?) foi exibido como 0.

3. Uso do Delimitador (IFS) e da Opção -a para Múltiplas Variáveis e Divisão em Arrays
Para continuar com a prática, execute o comando cd ~/read-demo para navegar até o diretório ~/read-demo criado anteriormente.

Ao definir o Separador de Campos Interno (IFS) como uma vírgula (,), a string em formato CSV passada via Here-String (<<<) é lida pelo comando read e dividida entre as variáveis col1, col2 e col3.
No resultado da execução, o nome do servidor, o endereço IP e o nome do serviço contidos na string foram devidamente divididos e exibidos em cada variável de acordo com o delimitador especificado.

Ao definir o delimitador (IFS) como dois-pontos (:) e utilizar a opção -a, a string no formato de /etc/passwd é dividida e armazenada na variável de array user_info.
O nome da conta (root) no índice 0 do array e o caminho do shell de login (/bin/bash) no índice 6 foram extraídos e exibidos com sucesso.
![bash -c ‘IFS=":" read -ra user_info «< “root:x:0:0:root:/root:/bin/bash”; echo “계정명: ${user_info[0]}, 셸: ${user_info[6]}”’](/ubuntu/20261007_143401_98/captures/s03_c03_bash_-c__IFS_____read_-ra_user_info______root_x_0.png)
4. Prática Essencial: Processamento de Arquivos Grandes Linha por Linha com Loop while e read -r
Para continuar com a prática, execute o comando cd ~/read-demo para navegar até o diretório ~/read-demo criado anteriormente.

Para praticar o processamento de arquivos linha por linha, crie o arquivo de exemplo em CSV servers.csv, contendo nomes de servidores e seus status operacionais separados por vírgula.

Utilize o loop while em conjunto com o comando read -r e defina o Separador de Campos Interno (IFS) como vírgula (,) para ler cada linha do arquivo servers.csv de forma segura.
No resultado da execução, o nome e as informações de status de cada servidor registrados no arquivo foram divididos e atribuídos com sucesso às variáveis name e status, sendo exibidos de acordo com a formatação.
![while IFS="," read -r name status; do echo “[상태 점검] $name 서버는 현재 $status 상태입니다.”; done < servers.csv](/ubuntu/20261007_143401_98/captures/s04_c03_while_IFS_____read_-r_name_status__do_echo___%EC%83%81%ED%83%9C_%EC%A0%90%EA%B2%80.png)
Até aqui, exploramos desde o uso básico do comando read em shell scripts Linux até técnicas comuns no dia a dia para ler arquivos linha por linha.
Com base nas diversas opções e exemplos apresentados hoje, experimente criar seus próprios scripts de automação interativa adaptados às suas necessidades.