commit 7250fb69686b4c0131e4cef3904003fb1124851e
parent dfc94e0221c0b830e49800e25e15c4ccad281b2c
Author: Mattias Andrée <maandree@kth.se>
Date: Wed, 30 Mar 2016 01:16:27 +0200
printenv: exit status is 2 on failure
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 <maandree@kth.se>
Diffstat:
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git 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
@@ -26,5 +26,5 @@ main(int argc, char *argv[])
}
}
- return fshut(stdout, "<stdout>") || ret;
+ return fshut(stdout, "<stdout>") ? 2 : ret;
}