#!/bin/bash
read -p "Enter some input:" USERINPUT
(grep "$USERINPUT" -q inputfile.txt ) && echo "Welcome" || echo "Sorry"
Eu quero escrever um script sed
que leia a entrada do usuário e, se a variável corresponder a uma sequência predefinida, ela deverá ser bem-vinda, caso contrário, será necessário imprimir.
Por exemplo, se o usuário insere "Olá" o sistema deve imprimir "Bem-vindo", caso contrário deve imprimir "Desculpe".
#!/bin/bash
read -p "Enter some input:" USERINPUT
(grep "$USERINPUT" -q inputfile.txt ) && echo "Welcome" || echo "Sorry"
Se você está tentando inserir uma senha, certamente não é como fazer isso.
Primeiro, a senha de comparação deve ser armazenada como um hash. Crie isso com md5sum
, por exemplo:
echo hello | md5sum
dá
b1946ac92492d2347c6235b4d2611184 -
Agora, para obter a entrada, podemos usar a resposta do @ Serg , ligeiramente modificada. Usamos o -s
para ocultar a entrada (manter em segredo).
echo Please enter password:
read -s input
e compare com o hash:
input=$(echo $input | md5sum)
if [ $input == "b1946ac92492d2347c6235b4d2611184 -" ]
then
echo "Welcome, your password was correct"
else
echo "Sorry, wrong password"
fi