summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorEric Blake <ebb9@byu.net>2009-10-26 13:32:49 -0600
committerEric Blake <ebb9@byu.net>2009-10-26 21:30:34 -0600
commitf00bbe33e41a9849351ea57c2706516d43e1e98d (patch)
tree1b8e228f7451a6624970850f97c5473f45957e79 /doc
parent0f3f6bf6bf38f1ed9c85fe98d6ac7645bf10a6c3 (diff)
downloadcoreutils-f00bbe33e41a9849351ea57c2706516d43e1e98d.tar.xz
tests: clean up tests of env -- handling
The comment in env.c about -- handling has not matched the behavior in the code since the initial commit back in 1992. * src/env.c: Fix bogus comment. * tests/misc/env: Further tweaks, avoiding PATH problems inherent in testing -i, and testing program name containing =. * doc/coreutils.texi (env invocation): Mention that intermediate program is needed to invoke program with name containing =.
Diffstat (limited to 'doc')
-rw-r--r--doc/coreutils.texi14
1 files changed, 14 insertions, 0 deletions
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
index 8a79ba7fb..138cf0184 100644
--- a/doc/coreutils.texi
+++ b/doc/coreutils.texi
@@ -14413,6 +14413,20 @@ Modifications to @env{PATH} take effect prior to searching for
not portable when @env{PATH} is undefined or omits key directories
such as @file{/bin}.
+In the rare case that a utility contains a @samp{=} in the name, the
+only way to disambiguate it from a variable assignment is to use an
+intermediate command for @var{command}, and pass the problematic
+program name via @var{args}. For example, if @file{./prog=} is an
+executable in the current @env{PATH}:
+
+@example
+env prog= true # runs 'true', with prog= in environment
+env ./prog= true # runs 'true', with ./prog= in environment
+env -- prog= true # runs 'true', with prog= in environment
+env sh -c '\prog= true' # runs 'prog=' with argument 'true'
+env sh -c 'exec "$@@"' sh prog= true # also runs 'prog='
+@end example
+
@cindex environment, printing
If no command name is specified following the environment