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>
This commit is contained in:
Mattias Andrée 2016-03-30 01:16:27 +02:00 committed by sin
parent dfc94e0221
commit 7250fb6968
2 changed files with 11 additions and 2 deletions

View File

@ -1,4 +1,4 @@
.Dd 2015-10-08 .Dd 2016-03-30
.Dt PRINTENV 1 .Dt PRINTENV 1
.Os sbase .Os sbase
.Sh NAME .Sh NAME
@ -16,5 +16,14 @@ is given. Otherwise,
prints only the value of each prints only the value of each
.Ar var .Ar var
one per line in the order specified. 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 .Sh SEE ALSO
.Xr env 1 .Xr env 1

View File

@ -26,5 +26,5 @@ main(int argc, char *argv[])
} }
} }
return fshut(stdout, "<stdout>") || ret; return fshut(stdout, "<stdout>") ? 2 : ret;
} }