Ответ 1
stty_orig=`stty -g`
stty -echo
echo 'hidden section'
stty $stty_orig
Я пишу оболочку Bourne script и вводя пароль следующим образом:
echo -n 'Password: '
read password
Очевидно, я не хочу, чтобы пароль возвращался к терминалу, поэтому я хочу отключить эхо в течение продолжительности чтения. Я знаю, как это сделать с помощью stty
, но я задам вопрос на благо сообщества, пока я иду читать man-страницу.;)
stty_orig=`stty -g`
stty -echo
echo 'hidden section'
stty $stty_orig
read -s password
работает в моем linux-окне.
Вы можете использовать опцию "-s" команды чтения, чтобы скрыть пользовательский ввод.
echo -n "Password:"
read -s password
if [ $password != "..." ]
then
exit 1; # exit as password mismatched #
fi
Также вы можете использовать 'stty -echo', если хотите скрыть от терминала для печати. И восстановите настройки терминала, используя "stty echo"
Но я думаю, что для получения ввода пароля от пользователя "read -s password" более чем достаточно.
Bourne Shell Script:
#!/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(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