"Ключове" зображення не є символом гліфом, це спеціальна форма курсору, яку Термінал малює.
Термінал відображає цю спеціальну форму курсора кожного разу, коли схоже на те, що користувача просять ввести пароль або подібні конфіденційні дані. Окрім відображення цього курсору, він обмежує клавіатуру римськими методами введення, щоб уникнути випадкового відображення чутливої інформації у вигляді вбудованого тексту або в іншому вікні методом введення. Це поводиться як стандартне текстове поле пароля OS X.
Термінал переходить у цей режим, коли бачить, що пристрій TTY налаштовано на канонічний (він же «приготовлений») режим, і відлуння символів вимкнено. У цій конфігурації введення користувача не повторюється, і лише буфер вводу пристрою TTY буде бачити символи, поки ви не введете Return, щоб надіслати його в прикладну програму. Це гарантує, що ні пристрій TTY, ні прикладна програма не зможуть повторювати введення користувача під час введення тексту, тому ця конфігурація зазвичай використовується лише для читання конфіденційної інформації.
Ви можете побачити його в дії на Bash, запустівши
stty -echo && echo Tell me your secrets: && cat; stty echo
stty -echo
вимикає відлуння символів TTY, і коли Bash виконує команду, він вмикає канонічний режим, тому наступна cat
команда буде виконуватися в режимі «пароль». cat
відображатиметься в кожному рядку введення, поки ви не введете Control- D. stty echo
вмикає його після cat
виходу.
Зауважте, що сценарій оболонки може просто використовувати read -s
для читання з TTY в цьому режимі, наприклад,
while read -sp 'Tell me your secrets: '; do echo; echo $REPLY | vis; done