Как передать переменную через скрипт в командную строку терминала и убедиться, что она не содержит escape-строк? - PullRequest
0 голосов
/ 13 февраля 2019

Я новичок в Ruby и большинство вещей, связанных с терминалом.Я пытаюсь создать скрипт, который бы возвращал информацию о потоках RTP из файла трассировки Wireshark.Я реализую его так, чтобы просто создать новый файл трассировки только с пакетами, которые соответствуют SSRC.Проблема в том, что когда я передаю переменную SSRC в команде, которая будет выполняться сценарием, я получаю сообщение об ошибке, в котором говорится, что в строке 1 команда "-w" не найдена.

Я не совсем понимаю, что именнов результате чего появляется новая строка, поэтому мне трудно что-либо попробовать на самом деле.Я попытался сделать несколько вариантов |sed 's ///', но ничего из того, что я пробовал, казалось, не работает.

Мой код Ruby;

stream = "0xb6143376"

`tshark -r #{file_name}.pcapng -d udp.port==#{src_port},rtp -2 -R 
rtp.ssrc == #{stream} -w #{file_name}_stream1.pcapng`

Вывод на терминал;

tshark: Syntax error.
sh: line 1: -w: command not found

Так что я ожидалсценарий, чтобы закончить, и в конце у меня будет новый файл трассировки только с пакетами, которые соответствуют 0xb6143376 SSRC.Вместо этого я получаю новую строку прямо перед -w

1 Ответ

0 голосов
/ 13 февраля 2019
stream = stream.chomp

исправил мою проблему

...