2

Быстрый вопрос, который преследовал меня весь день .. У меня есть скрипт bash, который включает эту строку:

nc -l 8044 | tee nc-output &

Вывод netcat никогда не записывается в nc-output. Если я запускаю эту строку за пределами bash-скрипта, она работает.

nc -l 8044 > afile &

Также не работает, но работает вне скрипта bash.

Мне нужен амперсанд, чтобы я мог запустить процесс отдельно и продолжить выполнение моего пакетного скрипта. Любые предложения будут великолепны!

Спасибо!

1 ответ1

2

Проблема в том, что как только nc примет соединение, он будет пытаться читать из stdin. Когда вы запускаете его как bash-скрипт, он всегда сразу читает EOF и закрывает соединение, чего не происходит, когда вы запускаете его вне скрипта.

Используйте ключ -d для предотвращения чтения nc из стандартного ввода.

nc -d -l 8044 > afile &

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .