Al "ingresar contraseñas", probablemente se refiera a ingresar datos sin ser visibles para el usuario.
(sugerido por geirha) Al usar bash, puede usar la -s
opción para evitar que se muestren los caracteres escritos:
read -p "Password please: " -s pass
Alternativamente, cambie el comportamiento del terminal para ocultar los caracteres escritos con stty -echo
(deshabilitar echo
). Después de leer la contraseña con el shell incorporado en read
una variable (en el ejemplo a continuación $pass
), vuelva a activarla stty echo
. Debido a que la nueva línea desde Enterestá oculta hasta, debe imprimir una nueva línea para obtener resultados futuros en una nueva línea.
stty -echo
read -p "Password please: " pass
stty echo
printf '\n'
read
y printf
son elementos integrados de shell. stty
es proporcionado por el coreutils
paquete que se instala por defecto. Eso significa que este fragmento es muy portátil.
Nota: la -p
opción no es estándar, sino de bash
. Si necesita mostrar un aviso en otros shells, use:
printf "Password please: "
stty -echo
read pass
stty echo
printf '\n'
Referencias