GNU/Linux >> Tutoriels Linux >  >> Linux

Masquer l'entrée utilisateur sur le terminal dans le script Linux

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

Linux
  1. Qu'est-ce qu'un utilisateur Linux ?

  2. Attribuer un accès en lecture/écriture à un utilisateur sur un répertoire spécifique sous Linux

  3. Bash peut-il écrire dans son propre flux d'entrée ?

  4. Linux - Comment exécuter un script sur le verrouillage/déverrouillage de l'écran ?

  5. Commande Linux su

Commande ID sous Linux

5 exemples pratiques de la commande Read sous Linux

Lire ligne par ligne dans le script bash

envoyer du courrier depuis le terminal linux en une seule ligne

Comment quitter le terminal Linux en utilisant le script Python ?

Comment contourner les interactions utilisateur dans un script ?