#include #include #include #include #include #include #ifndef HIST_FILE #define HIST_FILE "mihuq" #endif // char *getcwd(char *buf, size_t size); // char *get_current_dir_name(void); // char *getwd(char *buf); // char *readline (prompt) // int chdir(const char *path); char *reply; char *reply2; main(int argc, char **argv) { strcpy(argv[0], "..sSSsSsHuDdErr!!"); printf("heh, a shell!\n"); do { printf("%s" , get_current_dir_name()); reply = readline("> "); if (strcmp(reply, "cd") == 0) { if (chdir(readline("change to dir: ")) != 0) printf("cannot change to that dir!\n"); } else if (strcmp(reply, "..") == 0) { chdir(".."); } else if (strcmp(reply, "save") == 0) { write_history(HIST_FILE); } else if (strcmp(reply, "read") == 0) { read_history(HIST_FILE); } else if (reply) { // printf("first: %s, second: %s\n", reply[1], reply[2]); // printf("%s\n", reply); system(reply); } } while (strcmp(reply, "exit") != 0); return 0; }