diff --git a/commands/env/Makefile b/commands/env/Makefile index 9314c762a..1e34c0798 100644 --- a/commands/env/Makefile +++ b/commands/env/Makefile @@ -1,6 +1,4 @@ PROG= env MAN= -LINKS+= ${BINDIR}/env ${BINDIR}/printenv - .include diff --git a/distrib/sets/lists/minix/mi b/distrib/sets/lists/minix/mi index 9d7db3791..40e2730db 100644 --- a/distrib/sets/lists/minix/mi +++ b/distrib/sets/lists/minix/mi @@ -1997,6 +1997,7 @@ ./usr/man/man1/playwave.1 minix-sys ./usr/man/man1/pr.1 minix-sys ./usr/man/man1/prep.1 minix-sys +./usr/man/man1/printenv.1 minix-sys ./usr/man/man1/printf.1 minix-sys ./usr/man/man1/profile.1 minix-sys ./usr/man/man1/ps.1 minix-sys diff --git a/releasetools/nbsd_ports b/releasetools/nbsd_ports index 790d0e73a..a73e8564b 100644 --- a/releasetools/nbsd_ports +++ b/releasetools/nbsd_ports @@ -187,6 +187,7 @@ 2012/10/17 12:00:00,usr.bin/nvi 2010/05/14 17:28:23,usr.bin/newgrp 2012/10/17 12:00:00,usr.bin/passwd +2013/10/17 12:00:00,usr.bin/printenv 2012/10/17 12:00:00,usr.bin/printf 2013/09/28 12:00:00,usr.bin/rev 2010/02/19 16:35:27,usr.bin/sed diff --git a/usr.bin/Makefile b/usr.bin/Makefile index 445a7bd9a..7e60dd08a 100644 --- a/usr.bin/Makefile +++ b/usr.bin/Makefile @@ -20,7 +20,7 @@ SUBDIR= \ \ nbperf newgrp nice nl nohup nvi \ passwd \ - printf \ + printenv printf \ rev \ \ shuffle sed seq \ diff --git a/usr.bin/printenv/Makefile b/usr.bin/printenv/Makefile new file mode 100644 index 000000000..d7b6f75a1 --- /dev/null +++ b/usr.bin/printenv/Makefile @@ -0,0 +1,6 @@ +# $NetBSD: Makefile,v 1.4 1997/01/09 15:17:30 tls Exp $ +# from: @(#)Makefile 8.1 (Berkeley) 6/6/93 + +PROG= printenv + +.include diff --git a/usr.bin/printenv/printenv.1 b/usr.bin/printenv/printenv.1 new file mode 100644 index 000000000..d2b997c1d --- /dev/null +++ b/usr.bin/printenv/printenv.1 @@ -0,0 +1,66 @@ +.\" $NetBSD: printenv.1,v 1.7 2003/08/07 11:15:31 agc Exp $ +.\" +.\" Copyright (c) 1980, 1990, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" This code is derived from software contributed to Berkeley by +.\" the Institute of Electrical and Electronics Engineers, Inc. +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" from: @(#)printenv.1 8.1 (Berkeley) 6/6/93 +.\" $NetBSD: printenv.1,v 1.7 2003/08/07 11:15:31 agc Exp $ +.\" +.Dd June 6, 1993 +.Dt PRINTENV 1 +.Os +.Sh NAME +.Nm printenv +.Nd print out the environment +.Sh SYNOPSIS +.Nm +.Op Ar name +.Sh DESCRIPTION +.Nm +prints out the names and values of the variables in the environment, +with one name/value pair per line. +If +.Ar name +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. +.Sh SEE ALSO +.Xr csh 1 , +.Xr sh 1 , +.Xr environ 7 +.Sh HISTORY +The +.Nm +command appeared in +.Bx 3.0 . diff --git a/usr.bin/printenv/printenv.c b/usr.bin/printenv/printenv.c new file mode 100644 index 000000000..e15384f0d --- /dev/null +++ b/usr.bin/printenv/printenv.c @@ -0,0 +1,102 @@ +/* $NetBSD: printenv.c,v 1.12 2011/09/06 18:26:55 joerg Exp $ */ + +/* + * Copyright (c) 1987, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#ifndef lint +__COPYRIGHT("@(#) Copyright (c) 1987, 1993\ + The Regents of the University of California. All rights reserved."); +#endif /* not lint */ + +#ifndef lint +/*static char sccsid[] = "from: @(#)printenv.c 8.2 (Berkeley) 5/4/95";*/ +__RCSID("$NetBSD: printenv.c,v 1.12 2011/09/06 18:26:55 joerg Exp $"); +#endif /* not lint */ + +#include + +#include +#include +#include +#include +#include + +__dead static void usage(void); + +/* + * printenv + * + * Bill Joy, UCB + * February, 1979 + */ +int +main(int argc, char *argv[]) +{ + extern char **environ; + char *cp, **ep; + size_t len; + int ch; + + while ((ch = getopt(argc, argv, "")) != -1) + switch(ch) { + case '?': + default: + usage(); + } + argc -= optind; + argv += optind; + + if (argc == 0) { + for (ep = environ; *ep; ep++) + (void)printf("%s\n", *ep); + exit(0); + } + if (argc != 1) + usage(); + if (strchr(*argv, '=') != NULL) + errx(1, "Invalid environment variable %s", *argv); + len = strlen(*argv); + for (ep = environ; *ep; ep++) + if (!memcmp(*ep, *argv, len)) { + cp = *ep + len; + if (!*cp || *cp == '=') { + (void)printf("%s\n", *cp ? cp + 1 : cp); + exit(0); + } + } + exit(1); +} + +static void +usage(void) +{ + (void)fprintf(stderr, "Usage: printenv [name]\n"); + exit(1); +}