У меня проблема, и у меня возникли проблемы с поиском решения в Интернете. Мой код обрабатывает файл журнала и подключается к внешнему серверу с помощью netcat, когда файл записывается.Pipe to shell script issue
Вот краткий пример моего рабочего кода, я объясню проблему позже.
# function that watches input for '$servertag' variable
serverwatch() {
while read data
do
if [ `strindex "$data" "$servertag"` -ge 0 ]; then
....
nc <server_ip> 1234
....
fi
done
}
# Tail the log file and pipe to functions
tail -f messages | serverwatch
Вопрос заключается в том, что если соединение успешно установлено, данные от файла «сообщения» идет по трубопроводу до Netcat. Я выполняю базовый анализ данных локально, но я не знаю, как остановить передачу данных через netcat.
Я должен быстро заметить, что я ищу эту работу для большинства DD-WRT-сборников, поэтому я стараюсь не устанавливать новые пакеты. Кроме того, bash, кажется, разбит/минимален на сборке, который у меня есть, поэтому я стараюсь избегать bash.
Пожалуйста, дайте мне знать, если у вас есть вопросы, решения или ссылки на другие вопросы, которые помогут в решении этой проблемы.
Спасибо,
Джеймс
Это имеет смысл, спасибо за помощь. Похоже, что пакет netcat пропускает флаг 'd' на этой установке. Это бросает «nc: недопустимый вариант --d» – James