Script to Auto CYGWIN -U all environment varialbes

Andrew Schulman schulman.andrew@epamail.epa.gov
Tue Feb 8 13:44:00 GMT 2011


> Has anyone written anything into their bash profile or whatever that goes
> through each windows environment variable currently extant, and resets them
> via CYGPATH
> 
> e.g.
> 
> Before, @ start of .bashrc
> ETC=C:\WINDOWS\ETC
> 
> After run of .bashrc
> ETC=`$(cygpath -u '$ETC')`; EXPORT ETC  (--> /cygpath/c/windows/etc)
> 
> Or something like that. So, by the time you hit your cygwin prompt all your
> environment variables are already cleaned up.

Here's my solution.  Ugly quoting, but it works.

I chose to convert just a fixed list of environment variables that I know I
want to convert.  I guess it would be easy to cycle through all environment
variables and 'bashify' any that look like paths, i.e. any that have
backslashes in them.

    # Convert Win32-style paths to Cygwin-style
    function bashify {
        local p
        for p ; do
            if [ "${!p}" ] ; then
                eval 'export '$p'=$(cygpath -pu "$'$p'")'
            fi
        done
    }
    bashify MSDEV PROGRAMFILES WINDIR


--
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



More information about the Cygwin mailing list