You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
'env -i' clears the complete environment, including PATH. In that
case, on most platforms, when excuting commands without PATH being
set, /usr/bin and /bin are searched, e.g. on Linux:
$ strace env -i asdf |& grep asdf
execve("/usr/bin/env", ["env", "-i", "asdf"], 0x7ffc3e3c0890 /* 27 vars */) = 0
execve("/bin/asdf", ["asdf"], 0x55be2da090d0 /* 0 vars */) = -1 ENOENT (No such file or directory)
execve("/usr/bin/asdf", ["asdf"], 0x55be2da090d0 /* 0 vars */) = -1 ENOENT (No such file or directory)
write(2, "\342\200\230asdf\342\200\231", 10‘asdf’) = 10
Howver, this does not hold on every platform. E.g. on Cygwin, so
such fallback paths are searched:
$ strace env -i asdf |& grep asdf
37 25736 [main] env 3516 build_argv: argv[2] = 'asdf'
643 30373 [main] env 3516 find_exec: find_exec (asdf)
35 30408 [main] env 3516 find_exec: (null) = find_exec (asdf)
36 30444 [main] env 3516 spawnve: spawnve (, asdf, 0x10040B000)
‘asdf’ 199 53601 [main] env 3516 write: 10 = write(2, 0x10040B040, 10)
$ env -i zsh
env: ‘zsh’: No such file or directory
Therefore, avoid the need for 'env' to do the searching and invoke
the proper zsh binary explicitly.
0 commit comments