Entrada do Usuário em Scripts
Parte da seção Fundamentos do Journey de Terminal da Coddy — lição 69 de 82.
Variáveis são úteis, mas às vezes você quer que seu script peça informações ao usuário enquanto ele executa. 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 imprime a pergunta, espera o usuário digitar o nome e pressionar Enter, depois o cumprimenta. O comando read pega tudo o que o usuário digita e armazena na variável name.
Você pode tornar 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 espera pela entrada na mesma linha, o que parece mais polido. 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 codificar valores fixos, você pode escrever um script que funciona de forma diferente com base no que o usuário fornece a cada vez que o executa.
Desafio
FácilCrie um script de shell chamado greeter.sh que pergunta ao usuário qual é a sua cor favorita e depois exibe uma mensagem usando a entrada dele.
Seu script deve:
- Começar com a linha shebang (
#!/bin/bash) - Usar
readcom a opção-ppara exibir o prompt:What is your favorite color? - Armazenar a entrada em uma variável chamada
color - Usar
echopara imprimir:Nice! [color] is a great color!(onde [color] é a entrada do usuário)
Torne o script executável e execute-o. Quando solicitado, digite blue como sua resposta.
Sua saída deve ser:
What is your favorite color? blue
Nice! blue is a great color!Dica: Construa o script linha por linha usando
echocom redirecionamento. Useread -p "What is your favorite color? " colorpara exibir o prompt e capturar a entrada, depoisecho "Nice! $color is a great color!"para exibir o resultado.
Folha de consulta
O comando read pausa o script e espera pela entrada do usuário, depois armazena em uma variável:
#!/bin/bash
echo "What is your name?"
read name
echo "Hello, $name!"Use a opção -p para exibir o prompt e a entrada na mesma linha:
#!/bin/bash
read -p "Enter your name: " name
echo "Hello, $name!"A opção -p recebe o texto do prompt como seu argumento, seguido pelo nome da variável para armazenar a entrada.
Experimente você mesmo
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
4Diretórios
Criar um DiretórioCopiar um DiretórioMover e Renomear um DiretórioExcluir um DiretórioResumo - Operações com Diretórios7Conteúdo do Arquivo
Head e TailContagem de PalavrasComando SortComando UniqGrep BásicoGrep com FlagsResumo - Detetive de Texto10Projeto Analisador de Log
Visão Geral do ProjetoVisualizando o Arquivo de Log13Fundamentos de Shell Scripting
O Que É Um Script de ShellCriar e Executar um ScriptVariáveis em ScriptsEntrada do Usuário em ScriptsInstrução IfLaço ForLaço WhileResumo - Adivinhador de Números2Navegação
Imprimir Diretório de TrabalhoListar ArquivosMudar DiretórioCaminhos Absolutos vs RelativosDiretório Home e RaizResumo - Encontre Seu Caminho8Redirecionamento
Saída PadrãoSobrescrever em um ArquivoAnexar a um ArquivoEntrada PadrãoErro PadrãoRecapitulação - Construtor de Log3Arquivos
Criar um ArquivoLer um ArquivoCopiar um ArquivoMover e Renomear um ArquivoExcluir um ArquivoResumo - Operações com Arquivos6Curingas e Padrões
O Curinga AsteriscoO Curinga InterrogaçãoCuringas de ColchetesCombinando CuringasResumo - Operações Seletivas9Pipes
O Que é um PipeEncadeando Dois ComandosEncadeando Múltiplos ComandosPipe com GrepResumo - Pipeline de Dados