#include #include #include static void usage (void) __attribute__ ((unused)); int main (int argc, char *argv[], char *envp[]) { if (argc < 3) { usage(); return EXIT_FAILURE; } int i = 1; while (i < argc) { char *endptr; long count = strtol (argv[i], &endptr, 10); if (*endptr != '\0' || count <= 0) { usage(); return EXIT_FAILURE; } i++; if (i >= argc) { usage(); return EXIT_FAILURE; } char *var = argv[i]; char *val = NULL; int x = 0; while (envp[x] != NULL) { if (strstr(envp[x], var) == envp[x]) { val = envp[x]; break; } x++; } if (val == NULL) { val = ""; for (long j = 0; j < count; j++) { printf("%s=%s\n", var, val); } val = ""; } else { for (long j = 0; j < count; j++) { printf("%s\n", val); } } i++; } return EXIT_SUCCESS; } static void usage (void) { printf ("repeat, a tool for printing repeated environment variables\n"); printf ("usage: repeat N VAR ...\n"); printf ("each N must be a positive integer\n"); printf ("N VAR can be repeated, but each repetition must have both\n"); }