Mascarar "read"

1. Mascarar "read"

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 02/02/2018 - 14:33h

pessoas .. tem como Autoformatar entrada de dados no terminal???

tipo assim .. em uma página de internet é possível "Formatar" a entrada .. igual a entrada de CPF e CNPJ .. eu queria fazer tipo assim sacaram ... o usuário vai digitando e a parada vai AutoFormatando .. só que minha AutoFormatação seria uma virgula e um espaço a cada caractere.





  


2. Re: Mascarar "read"

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 02/02/2018 - 14:34h

Até onde eu saiba, você consegue formatar a gravação do dado na variável a posteriori. Não sei se o read aceita máscara de inserção de dados.

--
Dino®
Vi veri universum vivus vici
Public GPG signature: 0x246A590B
Só Slackware é GNU/Linux e Patrick Volkerding é o seu Profeta
Mensagem do dia: Satã representa conhecimento sem limites e não auto-ilusão hipócrita. 



3. Re: Mascarar "read"

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 02/02/2018 - 14:46h

lcavalheiro escreveu:
Até onde eu saiba, você consegue formatar a gravação do dado na variável a posteriori. Não sei se o read aceita máscara de inserção de dados.


Tá quíu paríu ... "MÁSCARA" jovem ... eu tentei lembrar a P***A da palavra e não consegui, aí mandei um "AutoFormatar" ... acho que a anestesia da dentista estava batizada.

Então .. eu vislumbrei a ideia de de repente ocultar a digitação, e a cada incremento grava em variável, formata e retorna já formatado ... mais tb fiquei boiando se tem como fazer !!!

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



4. Re: Mascarar "read"

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 02/02/2018 - 14:55h

Tem como ocultar o input do read sim, mas aí se o usuário digitar alguma bosta errada na variável ele não vai ter como verificar. Compensa?
--
Dino®
Vi veri universum vivus vici
Public GPG signature: 0x246A590B
Só Slackware é GNU/Linux e Patrick Volkerding é o seu Profeta
Mensagem do dia: Satã representa conhecimento sem limites e não auto-ilusão hipócrita. 



5. Re: Mascarar "read"

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 02/02/2018 - 15:14h

lcavalheiro escreveu:

Tem como ocultar o input do read sim, mas aí se o usuário digitar alguma bosta errada na variável ele não vai ter como verificar. Compensa?


então .. essa foi a questão ... por isso queria ver se rolava máscara ... no caso de não rolar a máscara já tenho um plano "B" e "C" funcionais.

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



6. Re: AutoFormatar

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 02/02/2018 - 19:17h

Mauriciodez escreveu:

pessoas .. tem como Autoformatar entrada de dados no terminal???

tipo assim .. em uma página de internet é possível "Formatar" a entrada .. igual a entrada de CPF e CNPJ .. eu queria fazer tipo assim sacaram ... o usuário vai digitando e a parada vai AutoFormatando .. só que minha AutoFormatação seria uma virgula e um espaço a cada caractere.

Boa noite Mauricio.
Veja se é isso:
read -p "Digite o CEP: " -n5 CEP01;read -p "-" -n3 CEP02;echo
Digite o CEP: 04414-000
echo "$CEP01-$CEP02"
04414-000
No meu exemplo, temos um numero fixo de caracteres, no seu caso tera que formatar após o usuário finalizar a palavra . . . .
vou pensar em uma solução...
EDITADO:
A cada "letra" digitada, deve ser mostrado a "letra" com a virgula e o espaço?
msoliver



7. Re: Mascarar "read"

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 02/02/2018 - 20:05h

[quote]msoliver escreveu:

Marcelo .. a parada parece bem complicada sacou .. nesse seu comando aí tem um porém ... eu preciso do "backspace" caso erre na digitação.

Vou te dar o cenário da parada ... o SED + NL me dá uma "menu" ..

1 Ação A
2 Ação B
3 Ação C

o Usuário digita quais ações ele quer que execute (multi seleção) <<<<<< aqui que eu queria que entrasse a formatação
[enter] e as ações escolhidas vão ser executadas.

OBS: Eu preciso da ação "backspace" caso ocorra erro na digitação !!!

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



8. Re: Mascarar "read"

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 05/02/2018 - 01:05h

Mauriciodez escreveu:

[quote]msoliver escreveu:

Marcelo .. a parada parece bem complicada sacou .. nesse seu comando aí tem um porém ... eu preciso do "backspace" caso erre na digitação.

Vou te dar o cenário da parada ... o SED + NL me dá uma "menu" ..

1 Ação A
2 Ação B
3 Ação C

o Usuário digita quais ações ele quer que execute (multi seleção) <<<<<< aqui que eu queria que entrasse a formatação
[enter] e as ações escolhidas vão ser executadas.

OBS: Eu preciso da ação "backspace" caso ocorra erro na digitação !!!

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------


Mauricio, veja se estou no caminho certo . . .
echo -e "\nMenu:\n1) Opção A\n2) Opção B\n3) Opção C\n";read -p "Escolha a Opção: " opc;sed 's/./&, /g;s/, $//' <<< "$opc" 



9. Re: Mascarar "read"

Osama Jr.
/bin/laden

(usa Void Linux)

Enviado em 05/02/2018 - 09:59h

Vê se isso pode te dar uma ideia: https://sanmarcell.wordpress.com/2011/06/28/shell-script-mascarando-senha-digitada/


10. Re: Mascarar "read"

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 05/02/2018 - 12:18h

msoliver escreveu:
Mauricio, veja se estou no caminho certo . . .
echo -e "\nMenu:\n1) Opção A\n2) Opção B\n3) Opção C\n";read -p "Escolha a Opção: " opc;sed 's/./&, /g;s/, $//' <<< "$opc" 


Não tá não velho ... kkkk ... a máscara no caso seria no momento da digitação .. como naquela do CEP q vc fez onde depois de X caracteres foi inserido "-" ... só q naquele q vc fez o backspace não rola .

seria como a mascara de "*" de senha, só que a ao invés de mostrar "*" no lugar do digito mostraria o dígito + espaço + virgula

por isso q a parada é complicada .. acho até que nem tem jeito, eu acho que isso só teria como fazer se fosse um script bem complexo.

Usuário digita, ao invez de retornar o dígito a parada armazena em variável e retorna Varíável + formatação e assim sucessivamente, se o usuário der "backspace" exclui ultima formatação e ultimo dígito da variável, e assim sucessivamente ..

entendeu minha idéia ??

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



11. Re: Mascarar "read"

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 05/02/2018 - 12:18h

/bin/laden escreveu:

Vê se isso pode te dar uma ideia: https://sanmarcell.wordpress.com/2011/06/28/shell-script-mascarando-senha-digitada/


depois vou dar uma lida ... valew !!!

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



12. Re: Mascarar

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 05/02/2018 - 21:52h

Mauriciodez escreveu:

pessoas .. tem como Autoformatar entrada de dados no terminal???

tipo assim .. em uma página de internet é possível "Formatar" a entrada .. igual a entrada de CPF e CNPJ .. eu queria fazer tipo assim sacaram ... o usuário vai digitando e a parada vai AutoFormatando .. só que minha AutoFormatação seria uma virgula e um espaço a cada caractere.



Vê aí se essa gambiarra ti dá alguma luz...

#!/bin/bash

i=0

clear
echo "Digite 4 letras ou números... "

while [ ${#tecla[*]} -le 3 ]
do
read -s -n 1 tecla[$i]
clear

case ${tecla[$i]} in
[a-z]|[0-9]*)
echo "Digite 4 letras ou números... "
echo "${tecla[*]}" | sed 's/ /, /g'
;;

*)
# simula o "backspace"
let i=($i - 1)
unset tecla[$i]
echo "Digite 4 letras ou números... "
echo "${tecla[*]}" | sed 's/ /, /g'
;;
esac
let i++
done




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts