spaces in arguments
Gunnar Hellekson
ghelleks at yahoo.com
Thu Sep 5 23:41:47 CEST 2002
> From: "Kenneth.ray" <kenneth.ray at travelersla.com>
> Date: Thu, 05 Sep 2002 14:36:51 -0400
> To: nagios-users at lists.sourceforge.net
> Subject: [Nagios-users] Re: spaces in arguments
>
> the behavior your describing is exactly how you would define an argument,
> however,
> the best way to handle this in perl is to assign the @ARGV list to a variable
> and then
> take that variable and assign it to what you need to assign it as a string.
> I believe you can do this by using a $LIST=@list; variable, if that doesnt
> work try
> a join() function on the list.
> hope this helps..
> your code is doing what you told it to, tell it something different and you'll
> be set.
> remember in perl that all arguments are assigned to a default list called
> ARGV (at least that is
> what it says in my book)
The workarounds you mention will work only if none of the argument values
contain a reserved argument token, for example:
my_plugin -w 1 -c 10 -E 'I ran with the -c argument'
@ARGV = ('my_plugin', '-w', '1', '-c', '10', '-E', 'I ran with the -c
argument');
versus
my_plugin -w 1 -c 10 -E I ran with the -c argument -90
@ARGV = ('my_plugin', '-w', '1', '-c', '10', '-E', 'I ran with the', '-c',
'argument');
Which are very different. I want the former, and I'm getting the latter.
So that's a problem. The fact that Getopt::Long gets confused is further
evidence that it's legitimately broken.
-Gunnar
>
>
>
>
>> --__--__--
>>
>> Message: 1
>> Date: Wed, 04 Sep 2002 17:35:23 -0400
>> From: Russell Scibetti <russell at quadrix.com>
>> Organization: Quadrix Solutions Inc.
>> To: Gunnar Hellekson <ghelleks at yahoo.com>,
>> nagios-users at lists.sourceforge.net
>> Subject: [Nagios-users] Re: [Nagios-devel] Spaces in arguments?
>>
>> For functionality sake, try adding a \ before each space to escape the
>> space. That might work.
>>
>> Russell Scibetti
>>
>> Gunnar Hellekson wrote:
>>
>>> This is a message I sent to nagiosplug-devel. This behavior appears to be
>>> coming from embedded perl, so I'm sending it here. Seems as though the
>>> argument parsing behavior is drastically different between checks run under
>>> embedded perl and those run more conventionally.
>>>
>>>
>>> ------ Forwarded Message
>>> From: Gunnar Hellekson <ghelleks at yahoo.com>
>>> Date: Tue, 03 Sep 2002 01:12:05 -0400
>>> To: nagiosplug-devel <nagiosplug-devel at lists.sourceforge.net>
>>> Subject: [Nagiosplug-devel] Spaces in arguments?
>>>
>>>
>>> I've pored through the Nagios code, posted questions, and tried to find
>>> working examples. I'm starting to think I'm stupid. I've written a plugin
>>> which takes, among other things, a string containing spaces.
>>>
>>> define command {
>>> command_name my_plugin
>>> command_line $USER1$/my_plugin -C '$ARG1$' -T $ARG2$
>>> }
>>>
>>> define service {
>>> host_name my-host
>>> service_description buggy-service
>>> use generic-service
>>> check_command my_plugin!A String With Spaces!AnotherValue
>>> }
>>>
>>> Running this as nagios works, of course:
>>>
>>> ./my_plugin -C 'A String With Spaces' -T AnotherValue
>>>
>>> When run in Nagios, it behaves as if:
>>>
>>> ./my_plugin -C \'A String With Spaces\' -T AnotherValue
>>>
>>> In other words, argv is:
>>> 0 == ./my_plugin
>>> 1 == -C
>>> 2 == 'A
>>> 3 == String
>>> etc.
>>>
>>>
>>> I have tried:
>>>
>>> * wrapping $ARG1$ in both (') and (") characters
>>> * wrapping $ARG1$ in escaped quotes (\'), (\")
>>> * wrapping the first argument in the service declaration (A String...)
>>> in ('), (") and escaped quotes (\'), (\")
>>>
>>> In every case, the command is executed as if each word of $ARG1$
>>> is a seperate argument.
>>>
>>> This is with Nagios 1.0b5, Solaris 2.6. The documentation to popen()
>>> and Nagios tell me that I should have to, at most, place a single quote (')
>>> around the $ARG1$ string in the check_command directive. Yet, no
>>> joy.
>>>
>>> Can anyone confirm this? Has anyone been able to get arguments
>>> containing spaces fed into their plugins?
>>>
>>> I would recompile with DEBUG1 so I could see the raw_command and
>>> processed_command, but nagios dumps core each time I've tried.
>>>
>>> Anyone?
>>>
>>> ------ End of Forwarded Message
>>>
>
>
>
>
> -------------------------------------------------------
> This sf.net email is sponsored by: OSDN - Tired of that same old
> cell phone? Get a new here for FREE!
> https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390
> _______________________________________________
> Nagios-users mailing list
> Nagios-users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/nagios-users
-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone? Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390
More information about the Users
mailing list