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 o usuário digitar algo; em seguida, armazena essa entrada em uma variável.

Veja como funciona:

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

Quando este script é executado, ele imprime a pergunta, espera que o usuário digite seu nome e pressione Enter e, em seguida, cumprimenta-o. O comando read pega o que quer que o usuário digite e armazena isso na variável name.

Você pode deixar o prompt mais limpo usando a opção -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 refinado. A opção -p recebe o texto do prompt como argumento, seguido pelo nome da variável que armazenará a entrada.

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

challenge icon

Desafio

Fácil

Crie um script de shell chamado greeter.sh que pergunte ao usuário qual é sua cor favorita e, em seguida, exiba uma mensagem usando a entrada fornecida.

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 exibir: Nice! [color] is a great color! (em que [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!

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

Coloque cada linha que você escrever entre aspas simples: echo 'echo "Hello $name"' >> script.sh. As aspas simples impedem que o shell substitua $name enquanto o arquivo está sendo escrito, portanto o script mantém a variável e a expande quando é executado. As aspas duplas substituiriam o valor imediatamente.

Dica: Construa o script linha por linha usando echo com redirecionamento. Use read -p "What is your favorite color? " color para exibir o prompt e capturar a entrada; em seguida, use 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