Ошибка сценария tcpdump замены процесса

#shell #tcpdump #zcat #process-substitution

#оболочка #tcpdump #zcat #процесс-подстановка

Вопрос:

Если я напишу следующую команду в терминале, она будет работать идеально

 tcpdump -w 1.pcap -nnr <( zcat /work/save1.pcap.gz ) '((tcp[13]==2 or tcp[13]==4) and (dst port 80)) or (udp and dst port 5060)'
  

Если я помещаю это в скрипт, я получаю ошибку типа «неожиданно» («в строке …»
У меня нет точной строки ошибки, потому что я работаю на сервере через ssh, и теперь у меня нет к нему доступа. Сервер должен работать на BSD, и прямо сейчас я не знаю, какая оболочка используется.
Мне нужно поместить такие строки в скрипт, потому что мне нужно выполнить эту команду на большом количестве pcap.gz файлы.

Комментарии:

1. можете ли вы перенаправить файл .gz в tcpdump вместо этого через канал? т. е. gunzip -c pcap.gz | tcpdump ... ? Тогда вы устранили наиболее похожую причину сообщения об ошибке «unexpected» («»). Удачи.

2. в конце концов, я использовал ваше решение, потому что оно имеет тот же эффект. Я также обнаружил, почему мой подход не сработал: linuxquestions.org/questions/programming-9 /…

3. вот почему полезно опубликовать вопрос с наименьшим объемом кода, который любой может запустить и увидеть ту же проблему. Если бы мы видели, где вы используете #!/bin/sh , мы могли бы посоветовать вам. Удачи!