xref: /original-bsd/usr.bin/printenv/printenv.c (revision 79cf7955)
1 /*
2  * Copyright (c) 1987 Regents of the University of California.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms are permitted
6  * provided that the above copyright notice and this paragraph are
7  * duplicated in all such forms and that any documentation,
8  * advertising materials, and other materials related to such
9  * distribution and use acknowledge that the software was developed
10  * by the University of California, Berkeley.  The name of the
11  * University may not be used to endorse or promote products derived
12  * from this software without specific prior written permission.
13  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
16  */
17 
18 #ifndef lint
19 char copyright[] =
20 "@(#) Copyright (c) 1987 Regents of the University of California.\n\
21  All rights reserved.\n";
22 #endif /* not lint */
23 
24 #ifndef lint
25 static char sccsid[] = "@(#)printenv.c	5.3 (Berkeley) 06/29/88";
26 #endif /* not lint */
27 
28 /*
29  * printenv
30  *
31  * Bill Joy, UCB
32  * February, 1979
33  */
34 main(argc, argv)
35 	int argc;
36 	char **argv;
37 {
38 	extern char **environ;
39 	register char *cp, **ep;
40 	register int len;
41 
42 	if (argc < 2) {
43 		for (ep = environ; *ep; ep++)
44 			puts(*ep);
45 		exit(0);
46 	}
47 	len = strlen(*++argv);
48 	for (ep = environ; *ep; ep++)
49 		if (!strncmp(*ep, *argv, len)) {
50 			cp = *ep + len;
51 			if (!*cp || *cp == '=') {
52 				puts(*cp ? cp + 1 : cp);
53 				exit(0);
54 			}
55 		}
56 	exit(1);
57 }
58