давайте поговорим о запросе ввода пользователем в сценариях оболочки, почти
нет программ без ввода в большинстве случаев ввод идет с клавиатуры
с целью получения ввода пользователя bash предоставляет встроенную команду с именем read
read заставит выполнение программы остановка до тех пор, пока пользователь не введет ввод и не завершит ввод
с помощью клавиши возврата или ввода, давайте посмотрим на некоторые примеры, первый пример будет записан
непосредственно в терминал, а затем будет создан сценарий оболочки, поэтому прочтите имя, выполнение остановлено,
и он ждет пользователь должен ввести строку и нажать Enter, и я пишу john, была
создана новая переменная с именем name, а сохраненное значение - это строка john, если вы хотите, чтобы она
отображала какое-то полезное сообщение для пользователя на экране, добавьте параметр минус p поэтому прочтите минус p,
введите IP-адрес и переменную ip, которую я нажимаю, введите, я ввожу IP-адрес,
и я отображаю значение x
и пинг минус c1 доллар ip, я могу использовать переменную в командах оболочки или скриптах n вл давайте создать
полезный скрипт, который отбрасывает все пакеты от определенного IP - адреса, который задается пользователем,
мы будем использовать Iptables, пожалуйста, не сосредоточиться на нем на данный момент, но вместо того, как читать работы,
чтобы удалить все пакеты, поступающие от конкретного IP-адрес или домен выполните от имени пользователя root следующий
комментарий. ip-таблицы минус заглавная i ввод, записанный заглавными буквами минус s адрес ap 8.8.8.8 минус
j, записанный строчными буквами, и отбрасывание, записанное заглавными буквами, прежде чем нажимать Enter
Я хочу проверить соединение с типом адрес в другом терминале, так что ping 8.8.8, и он работает,
я останавливаю его сейчас, я нажимаю Enter, я ввожу пароль, и команда была запущена, я снова проверяю
адрес ap, и он не работает, пакеты удаляются теперь давайте создадим сценарий,
чтобы vim block подчеркивал ip.s6 shebang и читал минус p, вводил адрес ap или домен, чтобы заблокировать
ip, а таблицы ap комментируют таблицы ip минус капитал i ввод
минус s доллар ip минус j drop, и я тоже печать сообщения для пользователя ec но
пакет из доллара ip будет удален, я сохраняю файл и
выхожу, я даю ему режим выполнения, а затем запускаю его как root, поэтому sudo dot slash block ip s6
введите адрес ap или имя домена, извините за опечатку здесь или
нет, сначала я хочу проверить соединение с типом адреса, например, ping 1.1.1.1
он работает, я ввожу адрес ap 1.1.1.1, я нажимаю, введите пакет из 1.1.1 будет
удален, и я тестирование его, и он не работает, пакеты отбрасываются идеально,
и, наконец, если вы хотите ввести пароль, не повторяя его в
терминале, добавьте параметр минусов, например, это чтение минус s минус p введите пароль
, скажем, pswd, и я нажимаю Enter,
он запрашивает для пароля, и я пишу что-то, что не повторяет
эхо-доллар pswd это случайная строка, которую я ввел,
вот как вы получаете ввод пользователя в переменной, это очень полезно в сценариях оболочки