diff --git a/usr.bin/env/env.c b/usr.bin/env/env.c index 42ec003abf26..df6153deab9a 100644 --- a/usr.bin/env/env.c +++ b/usr.bin/env/env.c @@ -31,17 +31,23 @@ * SUCH DAMAGE. */ +#if 0 #ifndef lint -static const char copyright[] = +static char copyright[] = "@(#) Copyright (c) 1988, 1993, 1994\n\ The Regents of the University of California. All rights reserved.\n"; #endif /* not lint */ #ifndef lint -static const char sccsid[] = "@(#)env.c 8.3 (Berkeley) 4/2/94"; +static char sccsid[] = "@(#)env.c 8.3 (Berkeley) 4/2/94"; #endif /* not lint */ +#endif + +#include +__FBSDID("$FreeBSD$"); #include +#include #include #include #include @@ -75,7 +81,7 @@ main(argc, argv) (void)setenv(*argv, ++p, 1); if (*argv) { execvp(*argv, argv); - err(1, "%s", *argv); + err(errno == ENOENT ? 127 : 126, "%s", *argv); } for (ep = environ; *ep; ep++) (void)printf("%s\n", *ep); diff --git a/usr.bin/printenv/printenv.1 b/usr.bin/printenv/printenv.1 index b4fb31f123d5..eb34cb672d8a 100644 --- a/usr.bin/printenv/printenv.1 +++ b/usr.bin/printenv/printenv.1 @@ -57,12 +57,6 @@ If is specified, only its value is printed. .Pp -If a -.Ar name -is specified and it is not defined in the environment, -.Nm -returns exit status 1, else it returns status 0. -.Pp Some shells may provide a builtin .Nm command which is similar or identical to this utility. @@ -122,11 +116,26 @@ this way also allows one to reference .Pa foo without the path, as well as set up the environment as desired. +.Sh DIAGNOSTICS +.Ex -std printenv +.Pp +.Ex -std env +An exit status of 126 indicates +.Ar command +was found, but could not be executed. +An exit status of 127 indicates +.Ar command +could not be found. .Sh SEE ALSO .Xr csh 1 , .Xr sh 1 , .Xr execvp 3 , .Xr environ 7 +.Sh STANDARDS +The +.Nm env +utility conforms to +.St -p1003.1-2001 . .Sh HISTORY The .Nm