1/* vi: set sw=4 ts=4: */ 2/* 3 * printenv implementation for busybox 4 * 5 * Copyright (C) 2005 by Erik Andersen <andersen@codepoet.org> 6 * Copyright (C) 2005 by Mike Frysinger <vapier@gentoo.org> 7 * 8 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. 9 */ 10 11#include "libbb.h" 12 13int printenv_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 14int printenv_main(int argc UNUSED_PARAM, char **argv) 15{ 16 int exit_code = EXIT_SUCCESS; 17 18 /* no variables specified, show whole env */ 19 if (!argv[1]) { 20 int e = 0; 21 while (environ[e]) 22 puts(environ[e++]); 23 } else { 24 /* search for specified variables and print them out if found */ 25 char *arg, *env; 26 27 while ((arg = *++argv) != NULL) { 28 env = getenv(arg); 29 if (env) 30 puts(env); 31 else 32 exit_code = EXIT_FAILURE; 33 } 34 } 35 36 fflush_stdout_and_exit(exit_code); 37} 38