This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: setting environment for bash running via cygserver
Larry Hall (Cygwin <reply-to-list-only-lh <at> cygwin.com> writes:
>
> On 9/9/2011 1:44 PM, Alan Sinclair wrote:
> > Where can I set environment variables which will be available in a
> > bash script running under cygserver?
> >
> > I need to ssh onto a remote cygserver and run bash scripts. RSA keys
> > are all set up so no password is needed and I can ssh onto the target
> > machine just fine by doing
> > ssh me <at> machine bash ~/myscript.sh ARGS
> >
> > But myscript.sh is not getting the environment it needs. For example,
> > the script needs PROGRAMFILES, and also needs PROCESSOR_ARCHITEW6432
> > set in the environment on 64-bit OS.
>
> Best to put them in a file you can source when you SSH into the other
> machine. For the case above, you could then source that in your script
> or in some appropriate rc file if "SSH_CLIENT" is set in your environment.
>
Thanks. Sourcing a file seems a usable approach. (I'm fairly new to cygwin
and unix in general). SSH_CLIENT is set (and SSH_CONNECTION too) but I
don't understand how to use that in reading an rc file.
When "myscript.sh" records the environment by doing "env > myfile", I can see
that "USER=me" and "HOME=/home/me" both have expected values (though
"USERNAME=cyg_server") so I can use HOME to locate the file to source.
I had thought that /home/me/.bash_profile gets read when starting a
non-login shell, so tried to export variables there, but I must be
misunderstanding something. The environment my script gets via ssh is different
than I get when logged in via ssh, which is different again from when I'm logged
in directly on the computer, and I'd like to understand why.
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple