Fixing bash script bogosity - help?

Bert Freudenberg bert at freudenbergs.de
Tue Apr 28 08:33:04 EDT 2009


On 28.04.2009, at 14:27, pgf at laptop.org wrote:

> bert wrote:
>>
>> On 28.04.2009, at 13:37, Martin Langhoff wrote:
>>
>>> On Tue, Apr 28, 2009 at 1:19 PM, Ignacio Vazquez-Abrams
>>> <ivazqueznet at gmail.com> wrote:
>>>> Ah, I see now.
>>>>
>>>> Try this:
>>>>
>>>> bash -c 'touch "$@"' "${CMD[@]}"
>>>
>>> Riiight, that works better... but
>>>
>>>> Or in the case of the full script:
>>>>
>>>> bash -c "$ERL"' "$@"' "${ERL_COMMAND[@]}"
>>>
>>> ...it doesn't work for runuser -- which is the real target. Runuser
>>> looks at the added params after -c and tries to parse them. There
>>> doesn't seem to be any support for passing parameters.
>>>
>>> hmmmmm.
>>
>> Maybe you should use su directly instead of runuser?
>
> won't that have the same problem?  it still wants a command
> passed via a -c STRING convention.
>
> i think this is somewhat intractable, and any time spent on it
> would be better spent creating a patch to runuser that lets it
> take its command as strace does, or as xterm does with -e, which
> avoids the vector->string->vector translations which are the real
> issue.


No, su passes all arguments after -c to the program you specify.

- Bert -





More information about the Devel mailing list