GNU/Linux >> Znalost Linux >  >> Linux

Skrytí uživatelského vstupu na terminálu ve skriptu Linux

pro řešení, které funguje bez bash nebo určitých funkcí z read můžete použít stty pro zakázání ozvěny

stty_orig=$(stty -g)
stty -echo
read password
stty $stty_orig

Stačí zadat -s k vašemu čtení takto:

$ read -s PASSWORD
$ echo $PASSWORD

Aktualizovat

V případě, že chcete získat fantazii tím, že vypíšete * pro každý znak, který napíšou, můžete udělat něco takového (pomocí andreas' read -s řešení):

unset password;
while IFS= read -r -s -n1 pass; do
  if [[ -z $pass ]]; then
     echo
     break
  else
     echo -n '*'
     password+=$pass
  fi
done

Bez fantazie

echo "Please enter your username";
read username;

echo "Please enter your password";
stty -echo
read password;
stty echo

Linux
  1. Co je uživatel Linuxu?

  2. vlock – Chytrý způsob, jak uzamknout uživatelskou virtuální konzoli nebo terminál v systému Linux

  3. Přidělte uživateli přístup pro čtení/zápis do konkrétního adresáře v systému Linux

  1. Může Bash zapisovat do svého vlastního vstupního streamu?

  2. Linux – Jak spustit skript na obrazovce uzamčení/odemknutí?

  3. Jak přidat uživatele Unix/linux do skriptu Bash?

  1. Znovu spustit skript, pokud je vstup Ano?

  2. Linux su příkaz

  3. Linux bash:Přiřazení více proměnných