env and PATH
Brian Inglis
Brian.Inglis@SystematicSW.ab.ca
Fri Dec 20 22:15:28 GMT 2024
Hi Federico,
Looks like non-Cygwin program launch is messing up PATH not on the current drive:
$ cd /proc/cygdrive/d
$ cat -A /proc/cygdrive/d/tmp/t.cmd
echo %PATH%^M$
$ env -i PATH='C:\Windows;C:\Windows\system32;' /bin/sh -c 'echo $PATH'
C:\Windows;C:\Windows\system32;
$ env -i PATH='C:\Windows;C:\Windows\system32;' `cygpath $COMSPEC` /s /c \
"d:\tmp\t.cmd"
D:\>echo C;D:\Windows;C;D:\Windows\system32;
C;D:\Windows;C;D:\Windows\system32;
D:\>exit
On 2024-12-20 09:51, Federico Kircheis via Cygwin wrote:
> Hello to everyone,
>
>
> I've noticed that env seems to handle the environment variable PATH in a
> particular way
>
>
> -----
> > cd /d;
> > env -i PATH='C:\Windows;C:\Windows\system32;' /c/Windows/System32/
> WindowsPowerShell/v1.0/powershell.exe
> # in the powershell instance
> echo $env:PATH
> C;D:\Windows;C;D:\Windows\system32;
> ----
>
>
> From this and other examples it seems that env uses for PATH as separator,
> then preprends the current drive to all paths that begin with '\' (thus all of
> them), and ";" is treated as part of the path
>
>
> I would like to use the PATH as-is in the invoked program, just like it is done
> for other variables, for example
>
> ----
> cd /d
> env -i OPATH='C:\Windows;C:\Windows\system32;' /c/Windows/System32/
> WindowsPowerShell/v1.0/powershell.exe
> # in the powershell instance
> echo $env:OPATH
> C:\Windows;C:\Windows\system32;
> ----
>
> in this case OPATH is forwarded as-is to powershell.exe.
>
> I understand that PATH is special, that for cygwin processes some transformation
> might be necessary.
>
> But is there any way to achieve what I'm trying?
>
> I search if there is maybe a separation option for telling env to use PATH as-
> is, but could not find none.
>
>
> Best
>
> Federico
>
--
Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
La perfection est atteinte Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut
-- Antoine de Saint-Exupéry
More information about the Cygwin
mailing list