Как считать ввод данных пользователем из канала?

Я почти уверен, что это не система, кэширующая ответ - что часть (системное кэширование) только обрабатывается nscd демон. Перезапуск (или остановка полностью), что демон сбрасывает или устраняет кэширование ОС ответов запроса службы имен.

Я предложу две возможности, хотя пользовательский слушатель, которого Вы настроили на порте 53, значительно пачкает воды:

  • A) Ваша система выпускает запросы в восходящем направлении, но непосредственный восходящий определитель имен кэширует ответ, или на основе он - настройки или, или на основе TTL записи.
  • B) Ваш пользовательский слушатель кэширует ответы внутренне и просто вручает тот ответ назад на систему, когда это спрашивают снова, прежде чем время кэша истекло.
9
07.06.2019, 02:06
3 ответа
[115226] Как говорили другие, это потому, что [115706]stdin[115707] из [115708]sh[115709] был перенаправлен для считывания с трубы, он не подключен к клемме, как это обычно бывает. Чтобы обойти это, можно использовать [115710]/dev/tty[115711], чтобы заставить скрипт считываться с клеммы. Eg:[12170]Обычно вы делаете это только в том случае, если вы специально хотите помешать людям скриптировать вход, например:[12171]Это все равно будет считываться с терминала, даже если пользователь может ожидать, что это будет автоматически вводить [115712]Y[115713] при запросе. Это обычное дело для программ, которые ожидают, что это сделает пароль.[115231].
8
27.01.2020, 20:07

Примечание:[1171634] спасибо @Graeme за то, что поправил меня на двух вышеприведенных примерах....

Это намного проще сделать, если держать

stdin

чисто.

  • Или, поскольку 0 1 2 терминала - это один и тот же файл, просто добавьте:

    И ваша

    Работает просто отлично.[1171268]

  • 2
    27.01.2020, 20:07
    [115099] Короткий ответ - нельзя. Труба перенаправляет stdout в stdin, поэтому вы не можете запустить интерактивный скрипт, так как вы уже перенаправили вывод из первой команды в качестве входной во вторую команду в операторе трубы. [12103] Возможно, вы хотите сделать что-то подобное:[12104]
    -1
    27.01.2020, 20:07

    Теги

    Похожие вопросы