Sed script para imprimir uma variável com base na entrada do usuário

-1

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".

    
por Krishna Chaithanya 11.06.2015 / 14:00

2 respostas

2

#!/bin/bash
read -p "Enter some input:" USERINPUT
(grep "$USERINPUT" -q inputfile.txt ) && echo "Welcome" || echo "Sorry"
    
por Sergiy Kolodyazhnyy 11.06.2015 / 14:09
0

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

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
    
por Tim 11.06.2015 / 14:35