Como solicitar a entrada do usuário no script de shell

Como solicitar a entrada do usuário no script de shell

Todo mundo quer que seus scripts sejam mais interativos, especialmente os usuários. Os usuários querem sentir que estão trabalhando com um software moderno em vez de algo pareado de arquivos antigos em lote e liners enigmáticas. Eles também querem um script de auto-documentação que requer o mínimo de documentação possível. Se essas coisas parecem como você estava esperando, continue lendo! Um script de shell é um lugar perfeito para entrada do usuário, porque é uma construção de programação tão simples. Consiste essencialmente em uma série de comandos que receberam seus próprios nomes

O comando Linux Read fornece a opção de solicitar a entrada do usuário. Depois que os acertos de entrada fornecidos pelo usuário entrarão, o armazenamento de comando forneceu entrada para uma variável. Que pode ser usado posteriormente nos scripts de shell. Neste tutorial, você aprenderá como solicitar a entrada do usuário em um script de shell. Além disso, ajude você a aceitar senhas de usuários em caracteres ocultos.

Tomando a entrada do usuário em Bash

Ao escrever um script de shell, pode ser útil solicitar ao usuário a entrada. Isso permitirá que você obtenha um valor específico que você pode usar em seu script como achar adequado. Ele também permite que você torne seu script interativo, levando o usuário a inserir valores como diretórios e nomes de arquivos.

Em Bash, você pode solicitar ao usuário um comando de leitura.

Leia my_var  

Aqui "ler”É o comando Linux e“my_var”É a variável, que armazenará o valor de entrada.

Pressione Enter depois de digitar o comando acima. Você verá uma linha em branco sem um prompt. Isso significa que a concha está esperando sua opinião. Digite algum texto e pressione o botão Enter. Você encontrará o prompt novamente.

Agora, verifique se o valor de entrada é armazenado em uma variável definida. Para confirmá -lo, imprima o valor variável com o comando Echo.

eco $ my_var 

Não há necessidade de definir nenhum tipo de dados para variáveis. Shell ajusta automaticamente o tipo com base na entrada do usuário.

Você também pode adicionar uma mensagem no prompt de entrada para a conveniência do usuário. Se parece com isso:

Leia -P "Qual é o seu nome? "My_var  

Neste exemplo, o comando de leitura é seguido por um -p. Isso diz ao script para solicitar ao usuário que a entrada. O texto dentro das citações após o -p é exibido ao usuário quando for solicitado. Ao usar a leitura em seus scripts de shell, você pode solicitar ao usuário entrada e armazenar os resultados em uma variável. Você também pode usar a leitura para ler em um valor usando uma variável para levar o usuário a outro valor. Você pode usar a leitura para muitas coisas, mas é mais útil para ler a entrada do usuário.

Script shell para solicitar a entrada do usuário

Escreva um script de shell de amostra para solicitar a entrada do usuário e armazená -lo em uma variável. Certifique -se de imprimir uma mensagem adequada na tela antes de solicitar a entrada. Armazene o valor de entrada em uma variável e imprima -a com uma mensagem de boas -vindas.

Crie um novo arquivo "entrada.sh ” e escreva o script abaixo:

#!/bin/bash echo "Digite seu nome:" Leia my_var echo "Welcome $ my_var!"
12345#!/bin/bash echo "Digite seu nome:" Leia my_varecho "Welcome $ my_var!"

Salve seu arquivo e feche -o.

entrada CHMOD +X.sh ./entrada.sh 

No script acima, você descobriu que a entrada é solicitada em uma nova linha. Para melhorar, use o -p opção para imprimir a mensagem antes de entrar com o comando de leitura. Com isso, vamos pular a primeira linha de eco.

Edite seu script e faça as seguintes alterações.

#!/bin/bash leia -p "Enter seu nome:" my_var echo "bem -vindo $ my_var!"
1234#!/bin/Bash Read -p "Enter seu nome:" my_varecho "Welcome $ my_var!"

Novamente execute o mesmo script e veja as saídas:

./entrada.sh 

A saída é auto-explicativa. O valor de entrada é armazenado na variável e depois o imprime.

Como inserir uma senha no script shell

A entrada de senha deve estar oculta na tela, semelhante ao que o shell Linux faz ao definir uma senha na tela. As senhas não devem ser visíveis na tela.

O comando de leitura fornece a opção de modo silencioso com "-S" Para ocultar os caracteres de entrada da tela. Vamos criar um script de amostra para obter a entrada de senha do usuário.

vim entus-pas.sh  

Adicione o script abaixo.

#!/bin/Bash Read -s -p "Digite uma senha:" my_var echo "Sua senha é -$ my_var"
1234#!/bin/Bash Read -s -p "Digite uma senha:" my_varecho "Sua senha é -$ my_var"

Salve o arquivo e feche-o.

Chmod +X de entrada.sh ./input-pass.sh 

Conclusão

Um script de shell é um lugar perfeito para entrada do usuário, porque é uma construção de programação tão simples. Consiste essencialmente em uma série de comandos que receberam seus próprios nomes. Este guia de instruções ajudou você a entender a entrada do usuário em scripts de shell. Além disso, fornece um exemplo para obter a entrada de uma senha no script shell.