Using cygwin bash shell with NT Emacs, path is not setup perfectly

Larry Hall (Cygwin) reply-to-list-only-lh@cygwin.com
Mon Aug 27 14:03:00 GMT 2007


Eric Lilja wrote:
> Ken Brown wrote:
>> On 8/25/2007 8:30 PM, Eric Lilja wrote:
>>> Ok, it seems that /etc/profile is not read when I start cygwin bash 
>>> using M-x shell and I think that may be a problem.
>>
>> I can't find the earlier message(s) in this thread, so I'm not sure of 
>> the context.  But you might be able to solve your problem by 
>> customizing the emacs variable explicit-bash-args to include "-l" or 
>> "--login".
>>
>> Ken
>>
>>
> 
> Thanks, but unfortunately it didn't help. I read and post using gmane 
> (set up as a news server under thunderbird) and it took hours before my 
> post showed up and it sounds like people didn't get see it even then.
> 
> Here's the original post:
> 
> Hello, I'm using a native win32 version emacs and I want M-x shell to 
> invoke Cygwin's bash instead of the default shell. Everything seems to 
> work except that the path does not get setup properly.
> 
> Here's the output from echo $PATH when bash is run under nt emacs:
> $ echo $PATH
> /usr/bin:/usr/local/bin:/usr/bin:/usr/bin:/usr/X11R6/bin:/cygdrive/c/Program/MiKTeX 
> 2.6/miktex/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/emacs/bin 
> 
> 
> Here's the same command when started using cygwin.bat:
> $ echo $PATH
> /usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/cygdrive/c/Program/MiKTeX 
> 2.6/miktex/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/emacs/bin 
> 
> 
> See the difference? Under ntemacs I get /usr/bin twice in a row instead 
> of /usr/bin:/bin:
> 
> This is causing problems for me. Why is this happening and how can I 
> solve it?
> 
> Here's the relevant section of my .emacs. It's basically what's on the 
> emacs wiki (I added ansi-color.for-comint-mode-on and removed the 
> setting of the HOME variable as that is availabe anyway on my system):
> (let* ((cygwin-root "c:/cygwin")
>            (cygwin-bin (concat cygwin-root "/bin")))
>

You could always try setting "cygwin-root" to "/usr/bin".  They are the same
directory under Cygwin.

Using "-l" with bash will get you a login shell.  If you're not seeing paths
as you expect them, you should look at possible locations where the path
could be set incorrectly.  '/etc/profile' is the typical location for
setting the path for all users but you can override this in any of your
rc files.  Look at the resolution logic documented in '/etc/profile' for
determining your home directory.  This could be set differently for the
two environments.

-- 
Larry Hall                              http://www.rfk.com
RFK Partners, Inc.                      (508) 893-9779 - RFK Office
216 Dalton Rd.                          (508) 893-9889 - FAX
Holliston, MA 01746

_____________________________________________________________________

A: Yes.
 > Q: Are you sure?
 >> A: Because it reverses the logical flow of conversation.
 >>> Q: Why is top posting annoying in email?

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list