Мне тут нужно было написать простенький скрипт на bash, и чтобы он спрашивал пароль с клавиатуры и потом дальше передавал его другим командам по ходу дела. Оказывается, с такой задачей отлично справляется встроенная в bash функция read.
Стандартный ввод в скриптах bash
Вот как работает обычный ввод данных с клавиатуры: мы запускаем функцию read, указываем ей в в качестве параметра имя переменной. В консоли запрашивается ввод текста и когда мы его вводим, то отображается каждая буква ввода – мы видим, что печатаем.
Создаём скрипт:
$vi input.sh
пока это вот такой контент:
#!/bin/bash
echo "Type your password, please:"
read PASS
echo "You just typed: $PASS"
Сохраняем это дело (жмём Esc, потом вводим :wq) и делаем скрипт исполняемым:
$chmod a+rx input.sh
Теперь запускаем скрипт и тестируем:
$./input.sh
Type your password, please:
mypass
You just typed: mypass
Работает на ура, но отображать секретные пароли прямо на стадии ввода с клавиатуры – не очень секьюрно. В настоящей ситуации я и подтверждать пароль, печатая его в конце скрипта, тоже бы не стал.
Безопасный ввод в bash
Просто указываем параметр -s для функции read (правим скрипт):
read -s PASS
-s это от слова secure.
Сохраням и запускаем скрипт, и теперь во время ввода данных ничего отображаться не будет – как и полагается:
$./input.sh
Type your password, please:
You just typed: mypass
Заходите на страницу Facebook или присоединяйтесь к чату в Telegram:
Я использую браузер Brave
Попробуйте сами:
IT Консалтинг
У меня есть консалтинговая компания: Tech Stack Solutions. Я помогаю планировать и создавать облачные решения на базе AWS и помогаю с развёртыванием и поддержкой сервисов на Unix/Linux. Свяжитесь со мной тут.