Retornando todos os usuarios cadastrados. [RESOLVIDO]

1. Retornando todos os usuarios cadastrados. [RESOLVIDO]

Melissa Aguiar
Melzinh4

(usa Linux Mint)

Enviado em 25/11/2021 - 20:23h





#!/bin/bash

#Variaveis
menu="MENU (escolha uma opção)
----------------------------------
1 - Ajuda
2 - Ver cadastro
3 - Editar cadastro
4 - Adicionar Usuario
----------------------------------"

nome=`cat cadastros.txt | grep "$nomeuser" | cut -d":" -f1`
email=`cat cadastros.txt | grep "$nomeuser" | cut -d":" -f2`
telefone=`cat cadastros.txt | grep "$nomeuser" | cut -d":" -f3`
cadastro="
NOME: "$nome"
EMAIL: "$email"
TELEFONE: "$telefone""



# MENU

echo "$menu"
read -p "Digite uma opção: " opcao

# OPÇÃO AJUDA

if [ "$opcao" -eq "1" ]
then
echo "Programa para verificação de cadastro"

# OPÇÂO VER CADASTRO

elif [ "$opcao" -eq "2" ]
then
read -p "Digite o nome cadastrado do usuario: " nomeuser
echo "$cadastro"

# OPÇÂO EDITAR CADASTRO

elif [ "$opcao" -eq "3" ]
then
read -p "Digite o novo nome: " nome2
read -p "Digite o novo email: " email2
read -p "Digite o novo telefone: " tel2
echo "$nome2:$email2:$tel2" > cadastros.txt

#OPÇÂO ADICIONAR USUARIO

elif [ "$opcao" -eq "4" ]
then
read -p "Digite o nome do usuario: " novouser
read -p "Digite o email do novo usuario: " novomail
read -p "Digite o telefone do novo usuario: " novotel
echo "$novouser:$novomail:$novotel" >> cadastros.txt

#NENHUMA OPÇÂO CORRESPONDENTE

else
echo "Opção invalida"
exit 1

fi

==================================================================================================

Gente me ajuda, quando seleciono a opção 2 ele retorna assim:

MENU (escolha uma opção)
----------------------------------
1 - Ajuda
2 - Ver cadastro
3 - Editar cadastro
4 - Adicionar Usuario
----------------------------------
Digite uma opção: 2
Digite o nome cadastrado do usuario: Melissa

NOME: Melissa
Melzinha
EMAIL: [email protected]
[email protected]
TELEFONE: 37222916
37221954

eu fiz errado? Estudei só até essa estrutura IF, ELIF e ELSE... to tentando aprender sozinha :~~




  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 25/11/2021 - 22:24h

Melzinh4 escreveu:
#!/bin/bash

#Variaveis
menu="MENU (escolha uma opção)
----------------------------------
1 - Ajuda
2 - Ver cadastro
3 - Editar cadastro
4 - Adicionar Usuario
----------------------------------"

nome=`cat cadastros.txt | grep "$nomeuser" | cut -d":" -f1`
email=`cat cadastros.txt | grep "$nomeuser" | cut -d":" -f2`
telefone=`cat cadastros.txt | grep "$nomeuser" | cut -d":" -f3`
cadastro="
NOME: "$nome"
EMAIL: "$email"
TELEFONE: "$telefone""



# MENU

echo "$menu"
read -p "Digite uma opção: " opcao

# OPÇÃO AJUDA

if [ "$opcao" -eq "1" ]
then
echo "Programa para verificação de cadastro"

# OPÇÂO VER CADASTRO

elif [ "$opcao" -eq "2" ]
then
read -p "Digite o nome cadastrado do usuario: " nomeuser
echo "$cadastro"

# OPÇÂO EDITAR CADASTRO

elif [ "$opcao" -eq "3" ]
then
read -p "Digite o novo nome: " nome2
read -p "Digite o novo email: " email2
read -p "Digite o novo telefone: " tel2
echo "$nome2:$email2:$tel2" > cadastros.txt

#OPÇÂO ADICIONAR USUARIO

elif [ "$opcao" -eq "4" ]
then
read -p "Digite o nome do usuario: " novouser
read -p "Digite o email do novo usuario: " novomail
read -p "Digite o telefone do novo usuario: " novotel
echo "$novouser:$novomail:$novotel" >> cadastros.txt

#NENHUMA OPÇÂO CORRESPONDENTE

else
echo "Opção invalida"
exit 1

fi

==================================================================================================

Gente me ajuda, quando seleciono a opção 2 ele retorna assim:

MENU (escolha uma opção)
----------------------------------
1 - Ajuda
2 - Ver cadastro
3 - Editar cadastro
4 - Adicionar Usuario
----------------------------------
Digite uma opção: 2
Digite o nome cadastrado do usuario: Melissa

NOME: Melissa
Melzinha
EMAIL: [email protected]
[email protected]
TELEFONE: 37222916
37221954

eu fiz errado? Estudei só até essa estrutura IF, ELIF e ELSE... to tentando aprender sozinha :~~

Boa noite Melissa,
Verifiquei somente a opção 02,
Testado e funcionando,
Segue:
#!/bin/bash
printf '\x1bc'; #Limpa a tela#

#Variaveis
linha='----------------------------------';

menu="\nMENU (escolha uma opção)\n
${linha}
1 - Ajuda
2 - Ver cadastro
3 - Editar cadastro
4 - Adicionar Usuario
${linha}\n"

#nome=`cat cadastros.txt | grep "$nomeuser" | cut -d":" -f1`
#email=`cat cadastros.txt | grep "$nomeuser" | cut -d":" -f2`
#telefone=`cat cadastros.txt | grep "$nomeuser" | cut -d":" -f3`
#cadastro="
#NOME: "$nome"
#EMAIL: "$email"
#TELEFONE: "$telefone"

# MENU
echo -e "$menu"

read -p "Digite uma opção: " opcao
# OPÇÃO AJUDA
if [ "$opcao" -eq "1" ];then
echo "Programa para verificação de cadastro"
# OPÇÂO VER CADASTRO
elif [ "$opcao" -eq "2" ];then
read -p "Digite o nome cadastrado do usuario: " nomeuser
#echo "$cadastro"
if grep -wi "${nomeuser}" cadastros.txt > temp.txt;then
awk -F":" '{printf "\n'${linha}'\nNome: %s\nEmail: %s\nTelefone: %s\n'${linha}'\n", $1,$2,$3}' temp.txt
else
echo "Usuário não cadastrado"
fi
# OPÇÂO EDITAR CADASTRO
elif [ "$opcao" -eq "3" ];then
read -p "Digite o novo nome: " nome2
read -p "Digite o novo email: " email2
read -p "Digite o novo telefone: " tel2
echo "$nome2:$email2:$tel2" > cadastros.txt

#OPÇÂO ADICIONAR USUARIO
elif [ "$opcao" -eq "4" ];then
read -p "Digite o nome do usuario: " novouser
read -p "Digite o email do novo usuario: " novomail
read -p "Digite o telefone do novo usuario: " novotel
echo "$novouser:$novomail:$novotel" >> cadastros.txt

#NENHUMA OPÇÂO CORRESPONDENTE
else
echo "Opção invalida"
exit 1
fi



______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________


3. Re: Retornando todos os usuarios cadastrados. [RESOLVIDO]

Melissa Aguiar
Melzinh4

(usa Linux Mint)

Enviado em 25/11/2021 - 23:37h


msoliver escreveu:

Melzinh4 escreveu:
#!/bin/bash

#Variaveis
menu="MENU (escolha uma opção)
----------------------------------
1 - Ajuda
2 - Ver cadastro
3 - Editar cadastro
4 - Adicionar Usuario
----------------------------------"

nome=`cat cadastros.txt | grep "$nomeuser" | cut -d":" -f1`
email=`cat cadastros.txt | grep "$nomeuser" | cut -d":" -f2`
telefone=`cat cadastros.txt | grep "$nomeuser" | cut -d":" -f3`
cadastro="
NOME: "$nome"
EMAIL: "$email"
TELEFONE: "$telefone""



# MENU

echo "$menu"
read -p "Digite uma opção: " opcao

# OPÇÃO AJUDA

if [ "$opcao" -eq "1" ]
then
echo "Programa para verificação de cadastro"

# OPÇÂO VER CADASTRO

elif [ "$opcao" -eq "2" ]
then
read -p "Digite o nome cadastrado do usuario: " nomeuser
echo "$cadastro"

# OPÇÂO EDITAR CADASTRO

elif [ "$opcao" -eq "3" ]
then
read -p "Digite o novo nome: " nome2
read -p "Digite o novo email: " email2
read -p "Digite o novo telefone: " tel2
echo "$nome2:$email2:$tel2" > cadastros.txt

#OPÇÂO ADICIONAR USUARIO

elif [ "$opcao" -eq "4" ]
then
read -p "Digite o nome do usuario: " novouser
read -p "Digite o email do novo usuario: " novomail
read -p "Digite o telefone do novo usuario: " novotel
echo "$novouser:$novomail:$novotel" >> cadastros.txt

#NENHUMA OPÇÂO CORRESPONDENTE

else
echo "Opção invalida"
exit 1

fi

==================================================================================================

Gente me ajuda, quando seleciono a opção 2 ele retorna assim:

MENU (escolha uma opção)
----------------------------------
1 - Ajuda
2 - Ver cadastro
3 - Editar cadastro
4 - Adicionar Usuario
----------------------------------
Digite uma opção: 2
Digite o nome cadastrado do usuario: Melissa

NOME: Melissa
Melzinha
EMAIL: [email protected]
[email protected]
TELEFONE: 37222916
37221954

eu fiz errado? Estudei só até essa estrutura IF, ELIF e ELSE... to tentando aprender sozinha :~~

Boa noite Melissa,
Verifiquei somente a opção 02,
Testado e funcionando,
Segue:
#!/bin/bash
printf '\x1bc'; #Limpa a tela#

#Variaveis
linha='----------------------------------';

menu="\nMENU (escolha uma opção)\n
${linha}
1 - Ajuda
2 - Ver cadastro
3 - Editar cadastro
4 - Adicionar Usuario
${linha}\n"

#nome=`cat cadastros.txt | grep "$nomeuser" | cut -d":" -f1`
#email=`cat cadastros.txt | grep "$nomeuser" | cut -d":" -f2`
#telefone=`cat cadastros.txt | grep "$nomeuser" | cut -d":" -f3`
#cadastro="
#NOME: "$nome"
#EMAIL: "$email"
#TELEFONE: "$telefone"

# MENU
echo -e "$menu"

read -p "Digite uma opção: " opcao
# OPÇÃO AJUDA
if [ "$opcao" -eq "1" ];then
echo "Programa para verificação de cadastro"
# OPÇÂO VER CADASTRO
elif [ "$opcao" -eq "2" ];then
read -p "Digite o nome cadastrado do usuario: " nomeuser
#echo "$cadastro"
if grep -wi "${nomeuser}" cadastros.txt > temp.txt;then
awk -F":" '{printf "\n'${linha}'\nNome: %s\nEmail: %s\nTelefone: %s\n'${linha}'\n", $1,$2,$3}' temp.txt
else
echo "Usuário não cadastrado"
fi
# OPÇÂO EDITAR CADASTRO
elif [ "$opcao" -eq "3" ];then
read -p "Digite o novo nome: " nome2
read -p "Digite o novo email: " email2
read -p "Digite o novo telefone: " tel2
echo "$nome2:$email2:$tel2" > cadastros.txt

#OPÇÂO ADICIONAR USUARIO
elif [ "$opcao" -eq "4" ];then
read -p "Digite o nome do usuario: " novouser
read -p "Digite o email do novo usuario: " novomail
read -p "Digite o telefone do novo usuario: " novotel
echo "$novouser:$novomail:$novotel" >> cadastros.txt

#NENHUMA OPÇÂO CORRESPONDENTE
else
echo "Opção invalida"
exit 1
fi



______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________



Muito obrigada Marcelo! Tenho que aprender awk, vou ler mais um pouco do livro haha. Boa noite!



4. Re: Retornando todos os usuarios cadastrados. [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 26/11/2021 - 00:16h

Muito obrigada Marcelo!
Tenho que aprender awk, vou ler mais um pouco do livro haha. Boa noite!

Por nada Melissa.
e, obrigado pela Melhor Resposta.
-------------------------------------------
Quanto ao erro no seu script "retorna todos usuários":
Ocorre porque no trecho:
nome=`cat cadastros.txt | grep "$nomeuser" | cut -d":" -f1`
email=`cat cadastros.txt | grep "$nomeuser" | cut -d":" -f2`
telefone=`cat cadastros.txt | grep "$nomeuser" | cut -d":" -f3`
cadastro="
NOME: "$nome"
EMAIL: "$email"
TELEFONE: "$telefone""
A variável $nome, não está definida,
portanto o grep usa "" (uma var vazia), e casa com todas as linhas.
-------------------------------------------
Estou checando seu "script",
troquei o "if" por "case":
Motivo:
Se o usuário não escolher um Número no Menu,
acusa erro.
------------------------------------------------------------
Verificando também a opção:
3 - Editar cadastro
É bem complexa.....
Se vai "editar/alterar",
Deve checar se o usuário existe,
Se existir, checar quantos com o mesmo nome,
Por exemplo:
Na minha agenda em "shell script",
Tem Daniel irmão, primo colega, etc ......
E, após tudo resolvido....
Qual campo alterar: Nome, E-mail, Telefone, Todos
Se "todos", é só excluir a linha atual, e incluir uma nova (comando sed).
Ou alterar o campo específico, tbem com o sed.....

Agenda foi o meu 1º script.....

Boa noite, e, se precisar de ajuda,
estou a disposição.
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts