Как отключить echo в терминале?
Я пишу сценарий оболочки Bourne и входной пароль такой:
echo -n 'Password: '
read password
очевидно, я не хочу, чтобы пароль эхом передавался на терминал, поэтому я хочу отключить эхо на время чтения. Я знаю, что есть способ сделать это с stty, но я задам вопрос в интересах сообщества, пока я буду читать manpage. ;)
4 ответов
можно использовать '- s ' вариант чтения команда для скрытия пользовательского ввода.
echo -n "Password:"
read -s password
if [ $password != "..." ]
then
        exit 1; # exit as password mismatched #
fi
также вы можете использовать 'ssty-echo' Если вы хотите скрыть от терминала для печати. И восстановить настройки терминала с помощью "ssty echo"
но я думаю, что для получения ввода пароля от пользователя 'read-s password' - это более чем достаточно.
Сценарий Оболочки Bourne:
#!/bin/sh
# Prompt user for Password
echo -n 'Password: '
# Do not show what is being typed in console by user
stty -echo
# Get input from user and assign input to variable password
read password
# Show what is being typed in console
stty echo
stty ручная команда для получения дополнительной информации:
@:/dir #man stty
stty фрагменты руководства:
 STTY(1)              stty 5.2.1 (March 2004)              STTY(1)
     NAME
          stty - change and print terminal line settings
     SYNOPSIS
          stty [-F DEVICE] [--file=DEVICE] [SETTING]...
          stty [-F DEVICE] [--file=DEVICE] [-a|--all]
          stty [-F DEVICE] [--file=DEVICE] [-g|--save]
     DESCRIPTION
          Print or change terminal characteristics.
          -a, --all
               print all current settings in human-readable form
          -g, --save
               print all current settings in a stty-readable form
          -F, --file=DEVICE
               open and use the specified DEVICE instead of stdin
          --help
               display this help and exit
          --version
               output version information and exit
          Optional - before SETTING indicates negation.  An * marks
          non-POSIX settings.  The underlying system defines which
          settings are available.
   Local settings:
          [-]echo
               echo input characters
