Вводячи паролі, ви, ймовірно, маєте на увазі введення даних, не бачивши їх для користувача.
(запропоновано geirha) Під час використання bash, ви можете використовувати -sопцію, щоб запобігти відображенню введених символів:
read -p "Password please: " -s pass
Крім того, змініть поведінку терміналу, щоб приховати введені символи за допомогою stty -echo(відключити echo). Прочитавши пароль із вбудованою оболонкою у readзмінну (у наведеному нижче прикладі $pass), увімкніть її знову за допомогою stty echo. Оскільки новий рядок від Enterприховано до, ви повинні надрукувати новий рядок, щоб отримати майбутній вихід на новий рядок.
stty -echo
read -p "Password please: " pass
stty echo
printf '\n'
readі printfє вбудованими оболонками. sttyнадається coreutilsпакетом, який встановлено за замовчуванням. Це означає, що цей фрагмент дуже портативний.
Примітка: -pпараметр не стандартний, але з bash. Якщо вам потрібно відобразити підказку в інших оболонках, використовуйте:
printf "Password please: "
stty -echo
read pass
stty echo
printf '\n'
Список літератури: