LINUX.ORG.RU

Вызов системной команды

 


1

1

Хочу вызвать команду такого типа:

...
system "/usr/bin/rtmpdump -r $rtmp -y $play -j $token -W $swf -V -v | mpv --quiet -" 
...

Проблема в том, что $token включает в себя кавычки и пробелы и переменная передается до первой кавычки.

Если использовать массив, то все ок, переменная передается, как надо:

my @command = ('/usr/bin/rtmpdump', '-r', "$rtmp", '-y', "$play", '-j', "$token", '-W', "$swf", '-V', '-v');

Вопрос: Но как реализовать вот эту часть в перле?

| mpv --quiet -

Попробуй sprintf и quotemeta на переменные.

tzukko ()
open my $fh, "| /usr/bin/rtmpdump -r $rtmp -y $play -j $token -W $swf -V -v | mpv --quiet -";

print <$fh>;

По поводу кавычек - не проверял, но ты попробуй.

grouzen ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.