Когда хочется добавить взаимодействие в скрипт, но без навороченного TUI, достаточно трех команд Bash:
read -s, tput, stty. С их помощью можно: скрыть ввод паролей, управлять курсором, отключать echo, обрабатывать клавиши "на лету".▪️ read -s - скрытый ввод. Используется для ввода пароля:
read -sp "Введите пароль: " password
echo -e "\nПароль получен!"
-s - скрыть, -p - prompt, -e - enable readline, -n - количество символов
▪️ tput - контроль терминала
tput civis # скрыть курсор
tput cnorm # вернуть курсор
tput setaf 2; echo "Зелёный текст"; tput sgr0
Примеры:
setaf - цвет текста (0-7)setab - цвет фонаcup 5 10 - переместить курсор на строку 5, столбец 10clear - очистить экран▪️ stty - контроль поведения терминала
stty -echo # отключить вывод на экран
read username
stty echo # вернуть обратно
Можно использовать и для отключения Ctrl+C, перехвата ввода, таймаутов:
stty intr '' # временно отключить ^C
▪️ Сценарий: простой ввод пароля с маской
read_password() {
prompt="Введите пароль: "
password=""
while IFS= read -rsn1 char; do
[[ $char == $'\0' || $char == $'\n' ]] && break
password+="$char"
echo -n '*'
done
echo
}
read_password
BashTex 📱 #bash #utils