[londonperl] Shell help needed

David Alban extasia at extasia.org
Thu Oct 11 14:32:00 BST 2007


On 10/11/07, David Cantrell <david at cantrell.org.uk> wrote:
> $ ssh -t some.random.host "screen -S foo /usr/local/bin/bash -c 'echo
>     $PATH;/usr/local/bin/bash'"
>
> $PATH here doesn't contain any of the customisations in my .profile or
> .bashrc.  And no combination of -i or -l when I invoke bash seems to do
> the job.  Help?

In your command above, the current shell is interpolating $PATH and
sending the remote shell the literal current path and not the literal
string '$PATH'.  This is because the single quotes enclosing $PATH are
themselves doubly quoted by the current shell, and thus, are not
metacharacters to the current shell.

Consider:

  export PATH=FOO:BAR:BAT:$PATH
  ssh -t some.random.host "echo '$PATH'"
  ssh -t some.random.host "echo \$PATH "

The first line of output will be the path of the current shell, and
will begin with 'FOO:BAR:BAT:'.  The second line of output will be the
path of the remote shell.

(Or did you want the remote shell to get the value of the current shell?)

-- 
Live in a world of your own, but always welcome visitors.


More information about the london.pm mailing list