URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4642
[ Назад ]

Исходное сообщение
"!chief@zbk.megalink.ru"

Отправлено bash , 13-Сен-05 10:53 
нужно выполнить внешнюю программу из скрипта ПЕРЛ... (у программы, которую надо будет вызвать куча параметров)
вот так работает в шеле:
finger @192.168.10.5 | awk '{print $1 " " $2 " " $4 " " $5}'|grep $1"$" | grep "Vi"

в перловом скрипте пишу:
`finger @172.26.87.4 | awk '{print $1 " " $2 " " $4 " " $5}'|grep $1"$" | grep "Vi"`;

т.е. заключаю в обратные кавычки... и фигня выходит... ошибка:
unexpected EOF while looking for matching `"'
syntax error: unexpected end of file

видимо как-то кавычки надо заменять или экранировать

помогите плиз...


Содержание

Сообщения в этом обсуждении
"мдя..."
Отправлено bash , 13-Сен-05 10:54 
с темой попутался )

"!chief@zbk.megalink.ru"
Отправлено mthawk , 13-Сен-05 11:32 
>нужно выполнить внешнюю программу из скрипта ПЕРЛ... (у программы, которую надо будет
>вызвать куча параметров)
>вот так работает в шеле:
>finger @192.168.10.5 | awk '{print $1 " " $2 " " $4
>" " $5}'|grep $1"$" | grep "Vi"
>
>в перловом скрипте пишу:
>`finger @172.26.87.4 | awk '{print $1 " " $2 " " $4
>" " $5}'|grep $1"$" | grep "Vi"`;
>
>т.е. заключаю в обратные кавычки... и фигня выходит... ошибка:
>unexpected EOF while looking for matching `"'
>syntax error: unexpected end of file
>
>видимо как-то кавычки надо заменять или экранировать
>
>помогите плиз...


Попробуй open(CMD, 'finger@172.26.87.4 | awk \'{print $1 " " $2 " " $4 " " $5}\'\|grep $1"$" \| grep "Vi" |');
@data=<CMD>;
close(CMD);


"!chief@zbk.megalink.ru"
Отправлено bash , 13-Сен-05 12:06 
не проходит...
говорит:
syntax error at or near |

"!chief@zbk.megalink.ru"
Отправлено madskull , 13-Сен-05 12:40 

>в перловом скрипте пишу:
>`finger @172.26.87.4 | awk '{print $1 " " $2 " " $4
>" " $5}'|grep $1"$" | grep "Vi"`;
>
экранируй "доллары".
как ты думаешь, во что превратится grep $1"$" ?

"!chief@zbk.megalink.ru"
Отправлено mthawk , 14-Сен-05 10:13 
>
>>в перловом скрипте пишу:
>>`finger @172.26.87.4 | awk '{print $1 " " $2 " " $4
>>" " $5}'|grep $1"$" | grep "Vi"`;
>>
>экранируй "доллары".
>как ты думаешь, во что превратится grep $1"$" ?


В случае если кавычки одинарные - ни во что они не превратятся

to bash
> не проходит...
>говорит:
>syntax error at or near |

попробуй так open (CMD, 'finger @172.26.87.4 | awk \'{print $1 " " $2 " " $4 " " $5}\' |grep $1"$" | grep "Vi" |')||die"error: $!";


"!chief@zbk.megalink.ru"
Отправлено madskull , 14-Сен-05 10:32 
>>
>>>в перловом скрипте пишу:
>>>`finger @172.26.87.4 | awk '{print $1 " " $2 " " $4
>>>" " $5}'|grep $1"$" | grep "Vi"`;
>>>
>>экранируй "доллары".
>>как ты думаешь, во что превратится grep $1"$" ?
>
>
>В случае если кавычки одинарные - ни во что они не превратятся
У него "это" в обратных кавычках -- поэтому $ обрабатывается как переменная. И вложенные одинарные кавычки этому уже не помеха

"!chief@zbk.megalink.ru"
Отправлено mthawk , 15-Сен-05 11:14 
>>>
>>>>в перловом скрипте пишу:
>>>>`finger @172.26.87.4 | awk '{print $1 " " $2 " " $4
>>>>" " $5}'|grep $1"$" | grep "Vi"`;
>>>>
>>>экранируй "доллары".
>>>как ты думаешь, во что превратится grep $1"$" ?
>>
>>
>>В случае если кавычки одинарные - ни во что они не превратятся
>У него "это" в обратных кавычках -- поэтому $ обрабатывается как переменная.
>И вложенные одинарные кавычки этому уже не помеха

Не хочу ввязываться в излишнюю полемику.
буду лаконичен
(CMD, 'finger
------^------- открылась текстовая строка
все что будет до след. неэкранированного символа >'<  
а он у нас в самом конце команды |'); является текстовой строкой без всяких подстановок. и двойные кавычки $1 " " $2 и т.д являются кавычками-сами-по-себе.


"!chief@zbk.megalink.ru"
Отправлено madskull , 15-Сен-05 11:50 
>>>>
>>>>>в перловом скрипте пишу:
>>>>>`finger @172.26.87.4 | awk '{print $1 " " $2 " " $4
>>>>>" " $5}'|grep $1"$" | grep "Vi"`;
>>>>>
>>>>экранируй "доллары".
>>>>как ты думаешь, во что превратится grep $1"$" ?
>>>
>>>
>>>В случае если кавычки одинарные - ни во что они не превратятся
>>У него "это" в обратных кавычках -- поэтому $ обрабатывается как переменная.
>>И вложенные одинарные кавычки этому уже не помеха
>
>Не хочу ввязываться в излишнюю полемику.
>буду лаконичен
>(CMD, 'finger
>------^------- открылась текстовая строка
>все что будет до след. неэкранированного символа >'<  
>а он у нас в самом конце команды |'); является текстовой строкой
>без всяких подстановок. и двойные кавычки $1 " " $2 и
>т.д являются кавычками-сами-по-себе.

Буду еще более лаконичен: я говорил про самое первое сообщение от bash :)