#include #include #include int main(void) { char str[1024]; while(1){ fputs("$ ", stdout); fflush(stdout); if(fgets(str, sizeof str, stdin)) { char *dup = strdup(str); char *cmd = strtok(dup, " \n"); char *param = strtok(NULL, " \n"); if(strcmp(cmd,"exit")==0) exit(0); else if(strcmp(cmd,"chdir")==0) chdir(param); else if(fork() == 0) { char *argv[64]; argv[0] = cmd; argv[1] = param; int i = 2; while (argv[i-1] != NULL) { argv[i] = strtok(NULL, " \n"); i++; } execvp(cmd, argv); printf(strcat(cmd,": not found\n")); exit(0); } wait(); } } return 0; }