Menu
Coddy logo textTech

Entrada do Usuário em Scripts

Parte da seção Fundamentos do Journey de Terminal da Coddy. Lição 69 de 82.

As variáveis são úteis, mas às vezes você quer que seu script peça informações ao usuário enquanto é executado. O comando read pausa o script e espera que o usuário digite algo, depois armazena essa entrada em uma variável.

Aqui está como funciona:

#!/bin/bash
echo "What is your name?"
read name
echo "Hello, $name!"

Quando este script é executado, ele exibe a pergunta, aguarda o usuário digitar seu nome e pressionar Enter, e então o cumprimenta. O comando read pega tudo o que o usuário digita e armazena na variável name.

Você pode deixar o prompt mais limpo usando a flag -p, que combina a mensagem do prompt e a entrada na mesma linha:

#!/bin/bash
read -p "Enter your name: " name
echo "Hello, $name!"

Isso exibe Enter your name: e aguarda a entrada na mesma linha, o que parece mais elegante. A flag -p recebe o texto do prompt como seu argumento, seguido pelo nome da variável para armazenar a entrada.

A entrada do usuário torna os scripts interativos e adaptáveis. Em vez de definir valores fixos no código, você pode escrever um único script que funciona de maneira diferente com base no que o usuário fornece a cada vez que o executa.

challenge icon

Desafio

Fácil

Crie um script shell chamado greeter.sh que peça ao usuário sua cor favorita e, em seguida, exiba uma mensagem usando a entrada informada.

Seu script deve:

  1. Começar com a linha shebang (#!/bin/bash)
  2. Usar read com a flag -p para exibir o prompt: What is your favorite color?
  3. Armazenar a entrada em uma variável chamada color
  4. Usar echo para imprimir: Nice! [color] is a great color! (onde [color] é a entrada do usuário)

Torne o script executável e, em seguida, execute-o com blue como entrada. Este terminal não é interativo — ele não pode parar e esperar que você digite — então envie a resposta para o script usando um pipe:

echo "blue" | ./greeter.sh

Sua saída deve ser:

Nice! blue is a great color!

Nota: o prompt What is your favorite color? não é exibido aqui. O comando read -p só imprime seu prompt quando a entrada vem de um teclado, e aqui ela vem do pipe.

Dica: Construa o script linha por linha usando echo com redirecionamento. Use read -p "What is your favorite color? " color para solicitar e capturar a entrada e, em seguida, echo "Nice! $color is a great color!" para exibir o resultado.

Experimente você mesmo

Terminal
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Playground de Terminal