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
.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

View File

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