Извлечение значений из строки, следующей за определенным словом, с помощью sed

Основываясь на ответе Марка А. , мне пришлось внести небольшую поправку, чтобы заставить его работать на моем Mac (, по крайней мере, на macOS Mojave Version 10.14.4)

mkfifo a
mkfifo b
nc 127.0.0.1 8000 < b > a &
nc -l 8001 < a > b &
printf "" > a

Этот оператор printf кажется решающим. В противном случае команда netcat для подключения к порту 8000 никогда не будет пытаться подключиться, а команда netcat для прослушивания порта 8001 никогда не будет фактически прослушивать порт 8001. Без printf каждый раз, когда я пытался бы подключиться к порту 8001, я бы получал В соединении отказано.

Я предполагаю, что netcat должен каким-то образом блокировать стандартный ввод (, возможно, по какой-то причине он пытается его прочитать )перед выполнением каких-либо операций с сокетами. Таким образом, без записи оператора printf в fifo a команда netcat никогда не начнет прослушивать порт 8001.

Примечание. :Я бы оставил ответ на пост Марка, но у меня пока нет репутации.

5
08.07.2021, 11:30
0 ответов

Теги

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