On Sun, Mar 07, 2004 at 03:39:30PM -0500, Igor Pechtchanski wrote: >On Sun, 7 Mar 2004, Paul Galbraith wrote: > >> It seems that the default profile script checks what shell the user is >> running and sets appropriate defaults based on the shell. Unfortunately, on >> all Win9x installs that I've done recently, I've noticed that the profile >> isn't correctly identifying that bash is my shell (which it indeed is). The >> problem seems to be that $0 is set to 'BASH', whereas the script is testing >> for 'bash'. The following changes to /etc/profile fix things up for me. >> >> I know that /etc/profile comes from the base-files package, but I don't know >> where the source is located for that package...perhaps someone more >> knowledgeable than I can submit this patch to the appropriate place? >> Thanks! >> >> Paul > >Paul, > >base-files is a source-only package. Also, this is the appropriate place >for patches. I'm sure the base-files maintainer reads this list. > >> --- /etc/profile.orig 2004-03-07 10:03:26.000000000 -0500 >> +++ /etc/profile 2004-03-07 10:24:12.000000000 -0500 >> @@ -78,7 +78,11 @@ >> # export CVSROOT >> >> # Shell dependent settings >> -case "$0" in >> +SHELLNAME_TMP1=`mktemp` >> +SHELLNAME_TMP2=`mktemp` >> +echo $0 > $SHELLNAME_TMP1 >> +tr [:upper:] [:lower:] < $SHELLNAME_TMP1 > $SHELLNAME_TMP2 >> +case `cat $SHELLNAME_TMP2` in >> bash | -bash | */bash | \ >> bash.exe | -bash.exe | */bash.exe ) >> # Set a HOSTNAME variable >> @@ -122,6 +126,8 @@ >> PS1='$ ' >> ;; >> esac >> +rm $SHELLNAME_TMP1 >> +rm $SHELLNAME_TMP2 >> >> export PS1 > >FWIW, this problem has been reported before. One of the solutions >previously proposed for this problem was adding the various >capitalizations of "bash" to the case, i.e., > >case "$0" in >[Bb][Aa][Ss][Hh] | -[Bb][Aa][Ss][Hh] | */[Bb][Aa][Ss][Hh] | >\ >[Bb][Aa][Ss][Hh].[Ee][Xx][Ee] | -[Bb][Aa][Ss][Hh].[Ee][Xx][Ee] | >*/[Bb][Aa][Ss][Hh].[Ee][Xx][Ee] ) > # Set a HOSTNAME variable
FWIW, this solution should be faster than one that involves echo, tr, and two pipes. cgf >Your solution looks cleaner, although, as Karl pointed out, it can be >shortened to the following (also made space-in-filename friendly): > >case "`echo "$0" | tr [:upper:] [:lower:]`" in >bash | -bash | */bash | \ >bash.exe | -bash.exe | */bash.exe ) > # Set a HOSTNAME variable -- 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/