From 7250fb69686b4c0131e4cef3904003fb1124851e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Andr=C3=A9e?= Date: Wed, 30 Mar 2016 01:16:27 +0200 Subject: [PATCH] printenv: exit status is 2 on failure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This provides a reliable and portable way to test whether an environment variable is defined. (Of course, if you are using glibc you may get false positives if you include a = in the query.) Signed-off-by: Mattias Andrée --- printenv.1 | 11 ++++++++++- printenv.c | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/printenv.1 b/printenv.1 index a61efe9..dc45c8a 100644 --- a/printenv.1 +++ b/printenv.1 @@ -1,4 +1,4 @@ -.Dd 2015-10-08 +.Dd 2016-03-30 .Dt PRINTENV 1 .Os sbase .Sh NAME @@ -16,5 +16,14 @@ is given. Otherwise, prints only the value of each .Ar var one per line in the order specified. +.SH EXIT STATUS +.Bl -tag -width Ds +.It 0 +Successful completion. +.It 1 +One or more queried variables were not found. +.It > 1 +An error occurred. +.El .Sh SEE ALSO .Xr env 1 diff --git a/printenv.c b/printenv.c index 2c1e711..2e1d15b 100644 --- a/printenv.c +++ b/printenv.c @@ -26,5 +26,5 @@ main(int argc, char *argv[]) } } - return fshut(stdout, "") || ret; + return fshut(stdout, "") ? 2 : ret; }