1 /*
2 * Copyright (c) 1988, 1993, 1994
3 * The Regents of the University of California. All rights reserved.
4 *
5 * %sccs.include.redist.c%
6 */
7
8 #ifndef lint
9 static char copyright[] =
10 "@(#) Copyright (c) 1988, 1993, 1994\n\
11 The Regents of the University of California. All rights reserved.\n";
12 #endif /* not lint */
13
14 #ifndef lint
15 static char sccsid[] = "@(#)env.c 8.3 (Berkeley) 04/02/94";
16 #endif /* not lint */
17
18 #include <err.h>
19 #include <stdio.h>
20 #include <string.h>
21 #include <stdlib.h>
22 #include <unistd.h>
23
24 extern char **environ;
25
26 int
main(argc,argv)27 main(argc, argv)
28 int argc;
29 char **argv;
30 {
31 char **ep, *p;
32 char *cleanenv[1];
33 int ch;
34
35 while ((ch = getopt(argc, argv, "-")) != EOF)
36 switch(ch) {
37 case '-':
38 environ = cleanenv;
39 cleanenv[0] = NULL;
40 break;
41 case '?':
42 default:
43 (void)fprintf(stderr,
44 "usage: env [-] [name=value ...] [command]\n");
45 exit(1);
46 }
47 for (argv += optind; *argv && (p = strchr(*argv, '=')); ++argv)
48 (void)setenv(*argv, ++p, 1);
49 if (*argv) {
50 execvp(*argv, argv);
51 err(1, "%s", *argv);
52 }
53 for (ep = environ; *ep; ep++)
54 (void)printf("%s\n", *ep);
55 exit(0);
56 }
57