нужно выполнить внешнюю программу из скрипта ПЕРЛ... (у программы, которую надо будет вызвать куча параметров)
вот так работает в шеле:
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видимо как-то кавычки надо заменять или экранировать
помогите плиз...
с темой попутался )
>нужно выполнить внешнюю программу из скрипта ПЕРЛ... (у программы, которую надо будет
>вызвать куча параметров)
>вот так работает в шеле:
>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);
не проходит...
говорит:
syntax error at or near |
>в перловом скрипте пишу:
>`finger @172.26.87.4 | awk '{print $1 " " $2 " " $4
>" " $5}'|grep $1"$" | grep "Vi"`;
>
экранируй "доллары".
как ты думаешь, во что превратится grep $1"$" ?
>
>>в перловом скрипте пишу:
>>`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: $!";
>>
>>>в перловом скрипте пишу:
>>>`finger @172.26.87.4 | awk '{print $1 " " $2 " " $4
>>>" " $5}'|grep $1"$" | grep "Vi"`;
>>>
>>экранируй "доллары".
>>как ты думаешь, во что превратится grep $1"$" ?
>
>
>В случае если кавычки одинарные - ни во что они не превратятся
У него "это" в обратных кавычках -- поэтому $ обрабатывается как переменная. И вложенные одинарные кавычки этому уже не помеха
>>>
>>>>в перловом скрипте пишу:
>>>>`finger @172.26.87.4 | awk '{print $1 " " $2 " " $4
>>>>" " $5}'|grep $1"$" | grep "Vi"`;
>>>>
>>>экранируй "доллары".
>>>как ты думаешь, во что превратится grep $1"$" ?
>>
>>
>>В случае если кавычки одинарные - ни во что они не превратятся
>У него "это" в обратных кавычках -- поэтому $ обрабатывается как переменная.
>И вложенные одинарные кавычки этому уже не помехаНе хочу ввязываться в излишнюю полемику.
буду лаконичен
(CMD, 'finger
------^------- открылась текстовая строка
все что будет до след. неэкранированного символа >'<
а он у нас в самом конце команды |'); является текстовой строкой без всяких подстановок. и двойные кавычки $1 " " $2 и т.д являются кавычками-сами-по-себе.
>>>>
>>>>>в перловом скрипте пишу:
>>>>>`finger @172.26.87.4 | awk '{print $1 " " $2 " " $4
>>>>>" " $5}'|grep $1"$" | grep "Vi"`;
>>>>>
>>>>экранируй "доллары".
>>>>как ты думаешь, во что превратится grep $1"$" ?
>>>
>>>
>>>В случае если кавычки одинарные - ни во что они не превратятся
>>У него "это" в обратных кавычках -- поэтому $ обрабатывается как переменная.
>>И вложенные одинарные кавычки этому уже не помеха
>
>Не хочу ввязываться в излишнюю полемику.
>буду лаконичен
>(CMD, 'finger
>------^------- открылась текстовая строка
>все что будет до след. неэкранированного символа >'<
>а он у нас в самом конце команды |'); является текстовой строкой
>без всяких подстановок. и двойные кавычки $1 " " $2 и
>т.д являются кавычками-сами-по-себе.Буду еще более лаконичен: я говорил про самое первое сообщение от bash :)