Dúvida grep

1. Dúvida grep

Caio Alexander
caioc2

(usa Kali)

Enviado em 08/10/2011 - 10:29h

Bom galera eu to criando uma plataforma de banco, só pra brincar.
mandei um grep procurar os nomes informados em "usuário" dentro de um arquivo "user.dat" e fiz o mesmo para senha,
grep $nome /home/caio/Documentos/Faculdade/exemplos/user.dat && /
grep $senha /home/caio/Documentos/Faculdade/exemplos/senha.dat && echo " Bem vindo ao banco ..."

Até aqui tudo bem, agora como eu crio uma forma de ''else'' no "grep" caso o user e a senha estejam incorretos informar a mensagem " usuário ou senha incorreto(s)"

pq no caso eu pensei assim

Dar um valor=0 para grep quando usuario e senha forem corretos.
Criar um if [ $valor -eq 0 ];then echo "Bem vindo ao banco ..."
else
echo "Usuário ou senha incorreto(s)"

mas como eu dou valor para o grep, como no if. exemplo
if [ .... ];then valor=0

Tem um outro probleminha também, quando eu informo la o usuário e a senha, os dados informados aparecem na frente de " Informe seu usuário / Informe sua senha ". Como eu faço para oculta-los ?


  


2. Re: Dúvida grep

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 08/10/2011 - 11:07h

Desculpe, deve ser a ressaca rsrs.

Não entendi exatamente o que você quer.

Se possível, coloque uma parte dos arquivos em forma de texto aqui e o código que está usando para eu poder testar ou ajustar.

Bora que desejo sarar a ressaca. Vou tomar um café e já volto.


3. Re: Dúvida grep

Caio Alexander
caioc2

(usa Kali)

Enviado em 08/10/2011 - 12:22h

#!/bin/bash
clear
echo -n " Informe o número da agência: "
read num1
echo -n " Informe o número da conta: "
read num2
nome=0
if [ $num1 -gt "0" -a $num1 -le "100" -a $num2 -gt "0" -a $num2 -le "100" ]
then
nome=Caio
echo -n " Seu nome é $nome ? [S/N] "
read tecla
if [ $tecla = "n" -o $tecla = "N" ]
then
exit
else
if [ $tecla = "s" -o $tecla = "S" ]
then
echo " Seja Bem Vindo $nome, infome seu Usúario e senha: "
echo -n " Usúario: "
read user
echo -n " Senha: "
read senha
grep -qs $user /home/caio/Documentos/Faculdade/exemplos/user.dat && grep -qs $senha /home/caio/Documentos/Faculdade/exemplos/senha.dat &&
echo " Bem vindo ao banco Shell "

fi
fi
fi

Depois eu vou fazer direito um banco de dados também para quando digitar uma certa agencia/conta aparecer nomes diferentes, por enquanto eu deixei para aparecer meu nome para qualquer agencia e conta, foi só pra teste mesmo.

Oque eu quero agora é a continuação disso, exemplo se o grep $user e $senha não estiverem corretos, aparecer a mensagem " Usuario ou senha incorreto(s), digite novamente ". Não sei se eu devo colocar uma especie de "else" para o grep ou dar valor=1 para o grep quando usuario e senha estiverem corretos, e criar um IF com esse valor.

if [ $valor -ne 1 ]then;
echo " Usuario ou senha incorreto(s), digite novamente "
fi



Falando em ressaca ainda nem durmi, asudhfsaduhfua



4. Re: Dúvida grep

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 08/10/2011 - 12:31h

caioc2 escreveu:


#!/bin/bash
clear
echo -n " Informe o número da agência: "
read num1
echo -n " Informe o número da conta: "
read num2
nome=0
if [ $num1 -gt "0" -a $num1 -le "100" -a $num2 -gt "0" -a $num2 -le "100" ]
then
nome=Caio
echo -n " Seu nome é $nome ? [S/N] "
read tecla
if [ $tecla = "n" -o $tecla = "N" ]
then
exit
else
if [ $tecla = "s" -o $tecla = "S" ]
then
echo " Seja Bem Vindo $nome, infome seu Usúario e senha: "
echo -n " Usúario: "
read user
echo -n " Senha: "
read senha
grep -qs $user /home/caio/Documentos/Faculdade/exemplos/user.dat && grep -qs $senha /home/caio/Documentos/Faculdade/exemplos/senha.dat &&
echo " Bem vindo ao banco Shell "

fi
fi
fi


Depois eu vou fazer direito um banco de dados também para quando digitar uma certa agencia/conta aparecer nomes diferentes, por enquanto eu deixei para aparecer meu nome para qualquer agencia e conta, foi só pra teste mesmo.

Oque eu quero agora é a continuação disso, exemplo se o grep $user e $senha não estiverem corretos, aparecer a mensagem " Usuario ou senha incorreto(s), digite novamente ". Não sei se eu devo colocar uma especie de "else" para o grep ou dar valor=1 para o grep quando usuario e senha estiverem corretos, e criar um IF com esse valor.


if [ $valor -ne 1 ]then;
echo " Usuario ou senha incorreto(s), digite novamente "
fi



Falando em ressaca ainda nem durmi, asudhfsaduhfua


ok ;)

Vou tentar aqui.


5. Fazer login em banco textual

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 08/10/2011 - 12:44h


#!/bin/bash
# file: logindb.sh
# -------------------------------------------------------------------
# RoadMap: Localizar e testar se existe banco textual.
# Abrir banco textual.
# Testar/localizar usuário e verificar se existe no banco.
# Testar/validar senha do usuário no db. Se correta continua.
# Dar boas vindas se o usuário existe e senha estiver correta.
# -------------------------------------------------------------------
#

function db_existe()
{
:
}
function digite_user()
{
:
}

function verifica_senha_db()
{
:
}
function login_db()
{
:
}

function agencia_existe()
{
:
}

function main()
{
:
}

#EOF()




file: db_textual

Informe uma estrutura básica aqui.
nome e campos. Como devem ser.


Justificativas:

O sisteminha vai obrigar a entrada de um user válido. Não há porque continuar se o usuário nem existe no db. Senha só será solicitada quando usuário existir no db.

Não sei sobre a necessidade da agência, mas como está sendo feito modularmente, o teste da agência ficará por sua conta pois será um exemplo igual aos demais.

Bora, vamos fazer o passo a passo juntos e aprendendo passo a passo.
Monte um db de exemplo e vou continuar.

off-topic kkkkkkkkkkkkkkkkkk





6. Re: Dúvida grep

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 08/10/2011 - 16:59h


Tem um outro probleminha também, quando eu informo la o usuário e a senha, os dados informados aparecem na frente de " Informe seu usuário / Informe sua senha ". Como eu faço para oculta-los ?


Nessa parte você pode fazer algo assim:

....
read -s -p "Informe seu usuário: " USUARIO # guarda o que for digitado em USUARIO
read -s -p "Informe sua SENHA: " SENHA # guarda o que for digitado em SENHA
...


Descobrir isso recentemente, a opção -s vai permitir que o que for digitado não será mostrado.

Abraços






7. Re: Dúvida grep

Elder Marco
eldermarco

(usa Fedora)

Enviado em 08/10/2011 - 23:43h

Você pode ser o user e a senha como o rai3mb citou e usar um if para testar essa condição que você quer


#!/bin/bash

# Lê o usuário e a senha, conforme o rai3mb citou
read -p "Informe o usuário: " USUARIO
read -s -p " Informe a senha: " SENHA

echo

# Depois você pode usar um if para testar o comando. Lembre-se que
# em shell script o if testa comandos e não condições. Quem geralmente
# testa condições em shell é o comando test ( ou [ ... ] para os mais íntimos..)
if grep -q "$USUARIO" user.txt && grep -q "$SENHA" senha.txt; then
echo "$USUARIO existe no banco da dados. Preocupa não"
else
echo "É intruso! Chama a polícia!"
fi



Ou pode fazer de uma maneira um pouco mais feia:


#!/bin/bash

# Lê o usuário e a senha, conforme o rai3mb citou
read -p "Informe o usuário: " USUARIO
read -s -p " Informe a senha: " SENHA

echo

# Uma outra alternativa
grep -q "$USUARIO" user.txt && grep -q "$SENHA" senha.txt &&
echo "$USUARIO existe no banco da dados. Preocupa não" ||
echo "É intruso! Chama a polícia!"



Você ainda poderia pensar em colocar esses valores num único arquivo e procurar por eles depois. Enfim, há n possibilidades para fazer a mesma coisa.


8. Re: Dúvida grep

Caio Alexander
caioc2

(usa Kali)

Enviado em 10/10/2011 - 13:35h

É eu to fazendo desse jeito mesmo ^^
To só terminando de fazer um banco de dados organizado para senha/user/nome/conta/agencia.
Eu não sabia desse grep dentro do if, ajudou agora. E eu to usando o grep -qs, porque os outros ele mostra o que foi buscado, no caso o user e a senha. O qs não informa, é melhor.


9. Re: Dúvida grep

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 10/10/2011 - 21:50h

caioc2 escreveu:
To só terminando de fazer um banco de dados organizado para senha/user/nome/conta/agencia.


Você não pode colocar aqui este banco com pelo menos 3 linhas para ter uma base ?
Tome cuidado com o separador de campos que irá usar dentro do banco textual. Já apanhei muito rsrs. Segundo o livro do Aurélio, usar caracteres exóticos é uma boa, mas da um trabalho...








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts