pour une solution qui fonctionne sans bash ou certaines fonctionnalités de read
vous pouvez utiliser stty
pour désactiver l'écho
stty_orig=$(stty -g)
stty -echo
read password
stty $stty_orig
Fournissez simplement -s à votre appel de lecture comme suit :
$ read -s PASSWORD
$ echo $PASSWORD
Mettre à jour
Au cas où vous voudriez devenir fantaisiste en sortant un *
pour chaque caractère qu'ils tapent, vous pouvez faire quelque chose comme ça (en utilisant le read -s
d'Andreas solution):
unset password;
while IFS= read -r -s -n1 pass; do
if [[ -z $pass ]]; then
echo
break
else
echo -n '*'
password+=$pass
fi
done
Sans être fantaisiste
echo "Please enter your username";
read username;
echo "Please enter your password";
stty -echo
read password;
stty echo