[comp.os.minix] env

tholm@uvicctr.UUCP (Terrence W. Holm) (08/26/88)

EFTH MINIX report #34  - August 1988 -  env(1)


There follows an implementation of env(1) for Minix.
Please consider this public domain software.

A "man" page is included.


----------------------------------------------------------
echo x - env.1
gres '^X' '' > env.1 << '/'
XCOMMANDS
X    env(1)		- set up the environment
X
XINVOCATION
X    env  [ - ]  [ name=defn ] ...  [ command ]
X
XEXPLANATION
X    Env(1) sets up the environment for the execution
X    of <command>, it is often used during testing. The
X    option "-" clears out the current environment, new
X    entries are added using "name=defn". If no <command>
X    string is given then env(1) simply displays the
X    environment.
X
XREFERENCES
X    printenv(1)
/
echo x - env.c
gres '^X' '' > env.c << '/'
X/*  env(1)
X *
X *  Author: Terrence Holm          Aug. 1988
X *
X *
X *  Sets up the environment for testing commands.
X *
X *    env  [ - ]  [ name=defn ] ...  [ command ]
X */
X
X#include <stdio.h>
X
Xextern char **environ;
X
X
Xmain( argc, argv )
X  int   argc;
X  char *argv[];
X
X  {
X  int    i;
X  char  *empty_environ = NULL;
X  char **p;
X
X  for ( i = 1;  i < argc;  ++i )
X    {
X    if ( strcmp( argv[i], "-" ) == 0 )
X	environ = &empty_environ;
X
X    else if ( strchr( argv[i], '=' ) != NULL )
X	putenv( argv[i] );
X
X    else  /*  a command  */
X	{
X	execvp( argv[i], &argv[i] );
X	perror( argv[i] );
X	exit( 127 );
X	}
X    }
X
X  /*  No command given, just print out the environment  */
X
X  for ( p = environ;  *p != NULL;  ++p )
X    printf( "%s\n", *p );
X
X  exit( 0 );
X  }
/
----------------------------------------------------------

		Edwin L. Froese
		  uw-beaver!ubc-cs!mprg!handel!froese

		Terrence W. Holm
		  uw-beaver!uvicctr!tholm