GNU/Linux >> Linux Esercitazione >  >> Linux

Nascondere l'input dell'utente sul terminale nello script Linux

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

Linux
  1. vlock:un modo intelligente per bloccare la console virtuale o il terminale dell'utente in Linux

  2. Bash può scrivere sul proprio flusso di input?

  3. Linux – Come eseguire uno script sul blocco/sblocco dello schermo?

  4. Ottieni lo script da eseguire di nuovo se l'input è Sì?

  5. Script Bash - Come leggere l'input dell'utente

Comando ID in Linux

Come aggiungere un utente Unix/linux in uno script Bash?

Come eseguire il comando prima dell'accesso dell'utente su Linux?

5 Esempi pratici del comando Read in Linux

inviare posta dal terminale Linux in una riga

Come uscire dal terminale Linux usando lo script Python?