Saisie "cachée" en ksh

Saisie "cachée" en ksh - Shell/Batch - Programmation

Marsh Posté le 31-10-2006 à 14:58:16    

Bonjour :)  
 
Alors voila : j'ai un script qui demande à l'utilisateur la saisie d'un mot de passe. De cette façon :

echo "Mot de passe : \c"
read pass


Ca fonctionne (la saisie va dans $pass), à un détail près : le texte saisi s'affiche dans le terminal. Ce qui est dommage, j'aimerais que ca n'apparaisse pas (ou remplacé par des étoiles à la rigueur). C'est tout bête, mais je ne trouve pas de solution pour corriger ca :(  
 
A priori, c'est du ksh mais si vous avez une solution en sh ou csh, je prends. Par contre, AIX obligé.
 
Merci :jap:


Message édité par mrbebert le 31-10-2006 à 14:59:40
Reply

Marsh Posté le 31-10-2006 à 14:58:16   

Reply

Marsh Posté le 31-10-2006 à 15:15:11    

stty

Message cité 1 fois
Message édité par Elmoricq le 31-10-2006 à 15:15:27
Reply

Marsh Posté le 31-10-2006 à 17:08:23    

Effectivement, avec les paramètres "echo" et "-echo" :jap:  
(en fait, y a carrément un exemple de ce que je veux faire dans le man de la commande :pt1cable: )
 
Une astuce, peut être, pour s'assurer de rétablir le paramètre "echo" si l'utilisateur sort par un CTRL+C ?? [:figti]  

Reply

Marsh Posté le 01-11-2006 à 04:56:23    

trap pour chopper le signal ?

Reply

Marsh Posté le 01-11-2006 à 14:26:12    

matafan a écrit :

trap pour chopper le signal ?

On peut faire ca en shell :??:  
(en Perl, je sais faire)

Reply

Marsh Posté le 01-11-2006 à 14:31:38    

man trap ;)
 
Sinon je ne sais pas si c'est le comportement normal, mais stty ne semble s'appliquer qu'au shell courant chez moi. Donc si tu en sors, tu retrouves bien le paramétrage initial.

Reply

Marsh Posté le 01-11-2006 à 14:41:17    

Je regarderais ca demain :)  
 
J'ai testé mais non, si je fais un CTRL+C lorsque le script me demande le mot de passe (et que le script ne passe donc pas par la commande "stty echo" ), alors ca reste désactivé. Il faut taper cette commande "en aveugle" pour rétablir la situation normale.
En fait, je pense que ca s'applique au terminal, et pas au shell [:proy]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed