This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: environment variables in ssh non-interactive shell
> I'm trying to use environment variables to pilot a windows system
> through cygwin+ssh. Things work nicely with an interactive shell, but
> mess up with a non-interactive shell because my environment variables
> aren't set.
<< -snip- >>
> Does anyone have an idea what could be wrong?
I'd suggest a simple approach like testing to see if there is a terminal
attached then source in the .bashrc or other environment setting files. Try
something like this:
[[ ! -t 1 ]] && [[ -f ~/.bashrc ]] && . ~/.bashrc
If there is no terminal attached to the session, and there is a .bashrc file
in ${HOME}, source the file into the current environment. You may want to do
something similar for the /etc/profile or ~/.profile files in which case I
would use a regular "if" styled statement. Make sure ${HOME} is set
(obviously) or explicitly set the value if it is not set in the script.
Carefully check the file permissions to make sure everything has the correct
read, write, and execute permissions (i.e. You don't want to execute a file
that just anyone can write into) or you may get a nasty surprise.
if [[ ! -t 1 ]]
then
echo -e "\n\tNo interactive terminal found for this session.\n\tSetting
the environment.\n"
[[ "${HOME}" = "" ]] && HOME=/usr/<usr_dir>/...
if [[ -f /etc/profile ]]
then
. /etc/profile
fi
if [[ -f ${HOME}/.profile ]]
then
. ${HOME}/.profile
fi
if [[ -f ${HOME}/.bashrc ]]
then
. ${HOME}/.bashrc
fi
fi
--
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