Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Как это написать на перле ?


Автор: stan777 31.1.2007, 12:16
Как это написать на перле "ping -c1 $i | grep $j >> list" ? надаело писать то на shell то на перл, хотелось бы перейти полностью на перл(выполнять команды через system())
Как я помню у меня перл ругается на это 
system(ping -c1 $i | grep $j >> list);
и на это тоже 
system("ping -c1 $i | grep $j >> list");
system("ping", "-c1", "$i" ,"|", "grep" ...);

Что делать может кто знает ?

     

Автор: amg 31.1.2007, 12:35
Да вроде не ругается.
Код

$i = 'ya.ru';
$j = 'rtt min/avg/max/mdev';
system("ping -c1 $i | grep '$j' >> list");


Добавлено @ 12:43 
Код

system("ping", "-c1", "$i" ,"|", "grep", '>>, "list");

А вот это, насколько я себе представляю, и не должно работать. Дело в том, что если system передается не один параметр, а больше, то эти параметры соединяются пробелами и передаются на исполнение прямо системе, минуя шелл. А такие штучки, как pipe или перенаправление - это шелл.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)