[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: How to expand sudo environment when -E doesn't



Chris Davies <chris-usenet@roaima.co.uk> writes:

[...]

>> What can I do to avoid this kind of silliness?  What kind of
>> environment variable would even tell sudo about bash builtins?
>
> There isn't one. You can't use bash builtins like that in any
> command. Instead, you should consider a construct like this:
>
>     sudo bash -c 'for ii in 1 2 3; do echo $ii; done'

Ahh yes, I see.  Tell sudo to use bash and a specific bash command. 
Thanks.

Darac M's  solution is similarly more direct.


Darac Marjal <mailinglist@darac.org.uk> writes:

[...]

>> >  sudo for ii in 1 2 3;do echo $ii;done 
>> >  bash: syntax error near unexpected token `do'
>
> I suspect the problem here is, perhaps not that sudo doesn't know "do",
> but rather that bash terminates your command at the semi-colon.
>
> Perhaps you should consider why you need to run a for loop as root?
>
> Consider the following:
>  for ii in 1 2 3; do sudo echo $ii; done
> or
>  for ii in $(sudo seq 1 3); do echo $ii; done

Ah yes, your debugging is much more exact. And the usage of sudo is a
more straight forward formulation, just have sudo doing the least
necessary.

Thanks.


Reply to: