И снова ExternalParemetr

Started by kozlov_ao, June 06, 2012, 03:34:52 PM

Previous topic - Next topic

kozlov_ao

Вопрос в следующем:
Как правильно составить ExternalParameter следующего вида?
ExternalParameter = Net.DNS.ResponseTime(*):/usr/local/pkg/netxms/test_net.sh dns $1 | awk "{print($2)}"

Смущает awk "{print($2)}", а именно ($2). Как его экранировать? и вообще, можно ли посмотреть, отрабатывается конструкция | awk "{print($2)}"?

kozlov_ao

Сейчас попробовал сделать так:
ExternalParameter = Net.DNS.ResponseTime(*):/usr/local/pkg/netxms/test_net.sh dns $1 | awk '{print $2}'

и понял, что все, что после | - игнорируется...

BrandStorm

Попробуйте обрамить команду в кавычки.

kozlov_ao

Нет, это не помогает.
Более того, заметил что при выполнении:
ExternalParameterShellExec = Net.DNS.ResponseTime(*):/usr/local/pkg/netxms/test_net.sh dns $1 | /usr/bin/awk "{print $2}"

См скрипт отрабатывается нормально, а вот на | /usr/bin/awk "{print $2}" он чхать хотел, т.к. в результате выдается полный ответ: DNSResponseTime: 3, хотя должен отдать только "3".

kozlov_ao

Осенило :)
ExternalParameterShellExec = Net.DNS.ResponseTime(*):/usr/local/pkg/netxms/test_net.sh dns $1 | /usr/bin/awk "{print $$2}"

И есть легкое ощущение, что это описано в доке :)

Victor Kirhenshtein

В доке это не описано :(, но на форуме мелькало наверное.