Bash Environment (Was: Bash history?)

Michael A. Chase mchase@ix.netcom.com
Tue Sep 16 06:16:00 GMT 1997


I have similar problems.  It appears that the only environment variable
that gets changed from MSDOS form to UNIX form is $PATH.  All the others
keep their backslashes and semicolons.

I put code in /etc/profile to fix the environment (attached).
Unfortunately, I have never seen /etc/profile run by default so I added a
check for it to .bashrc (which does work) to run both /etc/profile and
.bash_profile.

Is there something else I should be doing to get the correct environment
at bash startup?

Mac :})
-----Original Message-----
From: Sergey Okhapkin <sos@prospect.com.ru>
To: gnu-win32@cygnus.com <gnu-win32@cygnus.com>; 'Andy Piper'
<andyp@parallax.co.uk>
Date: Sunday, September 07, 1997 22:02
Subject: RE: Bash history?



>Andy Piper wrote:
>> 1) ~ seems to be interpreted wrongly. If I do `cd ~' I get:
>> bash.exe: C:WINNTProfilesandyp: No such file or directory
>> cd $HOME works fine. Somehow the /'s are getting stripped out.
>
>I'm sure, there are backslashes instead of slashes in your HOME env.
var. Set HOME to
>c:/WINNT/Profiles/andyp.
>
>>
>> 2) History is not preserved between sessions. Although bash
>> writes out a history file - .bash_history - correctly. It is not read
when
>
>Fix the first problem, and the second one should came out.
>
>--
>Sergey Okhapkin, http://www.lexa.ru/sos
>Moscow, Russia
>Looking for a job

-------------- next part --------------

if [ ${_ETC_PROFILE_:=0} = 0 ]; then
   export _ETC_PROFILE_=1

   if [ $(env | grep ';' | wc -c) -ne 0 ]; then
      echo "Fixing env"
      # Add 'UNIX' executable directories and remove windows ones
      PATH="/usr/local/bin:/bin:/usr/bin:/bin:$PATH"
      PATH=`echo "$PATH" | sed -e 's,:/perl5.004.bc/bin,,;s,:/wbin,,g'`

      # Convert DOS backslashes, drives, and path separators in environment to UNIX
      # 1. Don't touch PATH
      # 2. Don't lines starting with punctuation !_@#%^&*()=+:;<>?/`~-
      # 3. Backslash -> slash
      # 4. C:/ -> / and C:  -> /
      # 5. DRIVE: -> /DRIVE
      # 6. ; -> :
      # 7. Quote values

      tfile=/tmp/profile.$$
      env | \
         sed -e '/^$/d;/^PATH=/d' \
             -e '/^[!_@#%^&*()=+:;<>?/`~-]/d' \
             -e 's,\\,/,g' \
             -e 's,[Cc]:/,/,g' -e 's,[Cc]:,/,g' \
             -e 's,\([a-zA-Z]\):,//\1/,g' \
             -e 's,;,:,g' \
             -e "s/^\([^=][^=]*=\)\(.*\)$/\1'\2'/" > $tfile
      source $tfile
      rm $tfile
   fi

   # Other shell initialization stuff
   export TERM=linux
   set -o vi
fi



More information about the Cygwin mailing list