Utilitário de linha de comando para recuperar a senha, que não tem retorno de eco

14

O comando Bash builtin read não parece suportá-lo, agora eu preciso permitir que o usuário insira uma senha enquanto nenhum eco deve ser exibido. Que ferramenta posso usar?

margarida
fonte
4
help read|grep echo: " -snão faça eco da entrada proveniente de um terminal"
donothingsuccessfully
1
@donothingsuccessfully Esta -sextensão de nãoread é padrão . Você pode não conseguir usá-lo em nenhum Unix / Linux.
Totor

Respostas:

23
#!/bin/bash
stty -echo
IFS= read -p 'Enter password: ' -r password
stty echo
printf '\nPassword entered: %s\n' "$password"
  • stty -echo desativa o eco do terminal, que é o monitor que você está falando;
  • IFS= é necessário preservar espaços em branco na senha;
  • read -r desativa a interpretação da barra invertida.

Em bashvocê também pode usar read -s, mas este recurso não é padrão em conchas.

Chris Down
fonte