Здесь показаны различия между двумя версиями данной страницы.
linux:bash-read [2015/05/26 21:09] |
linux:bash-read [2021/02/11 09:20] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ===== Ввод с клавиатуры в bash ===== | ||
+ | Ввод с клавиатуры: **read**\\ | ||
+ | Результат ввода записывается в переменную $REPLY\\ | ||
+ | Например: | ||
+ | <code> | ||
+ | echo "Введите Слово" | ||
+ | read | ||
+ | echo "Вы ввели - $REPLY" | ||
+ | </code> | ||
+ | \\ | ||
+ | Можно писать так: **read var**\\ | ||
+ | Тогда после завершения ввода в $var окажется то, что ввели | ||
+ | \\ | ||
+ | =====Лайфхак: ввод пароля внутри bash-скрипта===== | ||
+ | Рецепт отсюда: http://debianforum.ru/index.php?topic=5261.0 | ||
+ | Собственно, код: | ||
+ | <code> | ||
+ | PASSWORD="" | ||
+ | while | ||
+ | read -s -n1 BUFF | ||
+ | [[ -n $BUFF ]] | ||
+ | do | ||
+ | # 127 - backspace ascii code | ||
+ | if [[ `printf "%d\n" \'$BUFF` == 127 ]] | ||
+ | then | ||
+ | PASSWORD="${PASSWORD%?}" | ||
+ | echo -en "\b \b" | ||
+ | else | ||
+ | PASSWORD=$PASSWORD$BUFF | ||
+ | echo -en "*" | ||
+ | fi | ||
+ | done | ||
+ | echo $PASSWORD | ||
+ | </code> |