Utilidad de línea de comando para recuperar la contraseña, que no tiene eco

14

El comando de lectura incorporado Bash no parece admitirlo, ahora necesito dejar que el usuario ingrese una contraseña mientras no se muestre ningún eco, ¿qué herramienta puedo usar?

margarita
fuente
44
help read|grep echo: " -sno hacer eco de entrada proveniente de una terminal"
donothings exitosamente
1
@donothingsuccessfully Esta -sextensión de noread es estándar . Es posible que no pueda usarlo en ningún Unix / Linux.
Totor

Respuestas:

23
#!/bin/bash
stty -echo
IFS= read -p 'Enter password: ' -r password
stty echo
printf '\nPassword entered: %s\n' "$password"
  • stty -echo apaga el eco del terminal, que es la pantalla de la que estás hablando;
  • IFS= es necesario preservar espacios en blanco en la contraseña;
  • read -r desactiva la interpretación de la barra invertida.

En bashtambién se puede utilizar read -s, pero esta función no es estándar a través de conchas.

Chris Down
fuente