per una soluzione che funzioni senza bash o alcune funzionalità di read
puoi usare stty
per disabilitare l'eco
stty_orig=$(stty -g)
stty -echo
read password
stty $stty_orig
Fornisci semplicemente -s alla tua chiamata di lettura in questo modo:
$ read -s PASSWORD
$ echo $PASSWORD
Aggiorna
Nel caso tu voglia essere fantasioso emettendo un *
per ogni carattere che digitano, puoi fare qualcosa del genere (usando read -s
di andreas soluzione):
unset password;
while IFS= read -r -s -n1 pass; do
if [[ -z $pass ]]; then
echo
break
else
echo -n '*'
password+=$pass
fi
done
Senza essere fantasioso
echo "Please enter your username";
read username;
echo "Please enter your password";
stty -echo
read password;
stty echo