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