Utilitaire de ligne de commande pour récupérer le mot de passe, sans écho

14

La commande de lecture intégrée de Bash ne semble pas la prendre en charge, maintenant je dois laisser l'utilisateur saisir un mot de passe alors qu'aucun écho ne doit être affiché, quel outil puis-je utiliser?

Marguerite
la source
4
help read|grep echo: " -sne pas faire écho à l'entrée provenant d'un terminal"
donothingsuccess
1
@donothingsuccessfully Cette -sextension de readn'est pas standard . Vous ne pourrez peut-être pas l'utiliser sur un Unix / Linux.
Totor

Réponses:

23
#!/bin/bash
stty -echo
IFS= read -p 'Enter password: ' -r password
stty echo
printf '\nPassword entered: %s\n' "$password"
  • stty -echo désactive l'écho du terminal, qui est l'écran dont vous parlez;
  • IFS= est nécessaire pour conserver les espaces dans le mot de passe;
  • read -r désactive l'interprétation de la barre oblique inverse.

Dans bash vous pouvez également utiliser read -s, mais cette fonctionnalité n'est pas standard dans les coquilles.

Chris Down
la source