недопустимая опция -e в netcat

$  cat pids | parallel -j0 cat && echo OK!
cat: 23: No such file or directory
cat: 45: No such file or directory
cat: 67: No such file or directory
cat: 89: No such file or directory
cat: '': No such file or directory

$  cat pids | parallel -j0 echo && echo OK!
23
45
67
89

OK!

параллель не останавливается при первой ошибке


$   cat pids | while read pid; do cat \"$pid\" || break; done
cat: '"23"': No such file or directory

$   cat pids | while read pid; do echo \"$pid\" || break; done
"23"
"45"
"67"
"89"
""

только bash :break означает перерыв

(Пустая последняя строка и статус возврата реализованы по-разному)


Или ты это имеешь в виду:

cat pids | while read pid; do cat \"$pid\" || break; done

Я признаю, что это не выводит статус, но это вытекает немного из недостающих спецификаций.

Когда я запускаю цикл с echo, он просто заключает в кавычки строки от файла "pids" до EOF. С catИ ||breakостанавливается с ошибкой "нет файла". Без перерыва печатает много ошибок "нет файла". Так это работает? Теперь я просто добавил && echo OK, потому что эта команда действительно возвращает 0 или 1, что соответствует сообщениям об ошибках.

Файл "pids", конечно же, содержит pid. Конвейерная обработка этого файла имитирует ПОТОК строк с одиночными идентификаторами, который продолжается до тех пор, пока не остановится. Неопределенный, как вы говорите.


Извините, но этот вопрос абсолютно не ясен. Неопределенно запущены разные тесты на разных PID.

Если у вас есть только какие-либо тесты, цикл в порядке.

Если вы имеете в виду это наполовину серьезно, то вы должны организовать свой алгоритм. Разбейте логику на более мелкие шаги. Сделайте это проще для вас и процессора.

Ваше если а, то если б, то если с, то если d, то, ну, тогда ВСЕ ОК может быть на грани ОК для одной экстремальной ситуации. Я не думаю, что у вас есть тот, где этот подход полезен.

2
30.04.2020, 09:26
1 ответ

Существует несколько вариантов netcat. Установите версию netcat, разработанную nmap.org

В моей системе Ubuntu есть 2 пакета netcatи ncat. Один из nmap — ncatи поддерживает опцию -e. Другой нет.

Вам нужно найти правильный пакет для вашего дистрибутива.

16
19.03.2021, 02:06

Теги

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