Для этого и предназначена команда yes
. Он выводит y
по одному в строке бесконечно, чтобы его можно было передать командам, которые задают вопросы «да/нет».
yes | /opt/MNG/MNGVIEWHP/fe/uninstall
Это отвечает y
на все вопросы. Чтобы ответить n
на все вопросы, замените yes
на yes n
. Для предопределенного сочетания y
и n
вы можете заменить yes
на :
printf '%s\n' y n n y y n...
Или запустите как:
/opt/MNG/MNGVIEWHP/fe/uninstall << 'EOF'
y
n
n
y
y
n
EOF
Если вам нужно, чтобы ответ был недоступен для чтения в течение 10 секунд, вы должны:
(sleep 10; echo y; sleep 2; echo n;...) | /opt/MNG/MNGVIEWHP/fe/uninstall
Но в этом, вероятно, нет необходимости, когда мы записываем y
в канал, он будет там для uninstall
, чтобы прочитать его, когда он захочет его прочитать, маловероятно, что вам нужно будет его ждать. быть готовым ее прочитать. Исключение будет, если uninstall
решит сбросить ввод перед тем, как задать вопрос.
Все они предполагают, что команда uninstall
просто считывает каждый ответ как одну строку ввода из своего стандартного ввода.
В более сложных случаях, когда команда считывает ответы непосредственно с tty-устройства или когда вам нужно предоставить ответы условно (, например, на основе того, что выводит команда ), вы должны использовать такие вещи, как expect
или zsh
с zpty
.
Обратите внимание, что многие интерактивные программы могут переходить в -неинтерактивный режим при передаче какой-либо опции. Возможно, вы захотите сначала проверить их руководство, прежде чем тратить слишком много усилий на решение проблемы.
Технически это зависит от IP-адреса и маски подсети, на которых находится каждый из этих IP-адресов. В любом случае, прокси-арп может решить вашу проблему. Вы должны указать маршрутизатору действовать как прокси для MAC-адреса конечной машины.
Обычно это делается с помощью команды arp. Поскольку в вашем вопросе отсутствуют сведения о маршрутизаторе, вам необходимо найти его для ОС вашего маршрутизатора.