Linux¿Î³ÌÉè¼Æ½ø³Ì¿ØÖÆ

else wait(NULL); // ¸¸½ø³Ì exit(0); }

4.3 mini_shell.c

#include #include #include #include void pwd(); main() { int id; char cmd[80];

printf(\your-sid****\\n\ //½«your-sid¸ÄΪÄãµÄѧºÅ while(1) {

printf(\ //ÏÔʾÃüÁîÌáʾ·û fgets(cmd, 80, stdin); //´Ó¼üÅ̶ÁÈëÃüÁîÐÐ

cmd[strlen(cmd)-1]=0; //½«ÐÐβ×Ö·ûÖÃΪ×Ö·û´®½áÊø·û0 if ( strcmp(cmd, \ exit(0); //ÄÚ²¿ÃüÁîquit if ( strcmp(cmd, \ pwd(); //ÄÚ²¿ÃüÁîpwd else { //ÍⲿÃüÁî id=fork();

if (id<0) { printf(\ if ( id == 0 ) {

if (execlp(cmd, cmd, NULL)<0) printf(\ exit(2); }

wait(NULL); } } }

void pwd() {

char dir[50]; getcwd(dir,50); printf(\}

4.4 mini_shell.cÑ¡×÷Ò»

#include #include #include #include void pwd(); main() { int id; char cmd[80]; char* cmd1; char* cmd2; char* cmd3; char y;

printf(\ //½«your-sid¸ÄΪÄãµÄѧºÅ printf(\ getchar(); scanf(\

if(y='n')

printf(\ else if(y='y') printf(\ while(1) {

printf(\ //ÏÔʾÃüÁîÌáʾ·û fgets(cmd, 80, stdin); // ´Ó¼üÅ̶ÁÈëÃüÁîÐÐ

cmd[strlen(cmd)-1]=0; //½«ÐÐβ×Ö·ûÖÃΪ×Ö·û´®½áÊø·û0 cmd1=strtok(cmd,\ cmd2=strtok(NULL,\ cmd3=strtok(NULL,\

if ( strcmp(cmd1, \ exit(0); //ÄÚ²¿ÃüÁîquit if ( strcmp(cmd1, \ pwd(); //ÄÚ²¿ÃüÁîpwd else { //ÍⲿÃüÁî id=fork();

if (id<0) { printf(\ if ( id == 0 ) { if(cmd2!=NULL) { if(cmd3==NULL) {

if (execlp(cmd1, cmd1, cmd2,NULL)<0) printf(\ exit(2); } else {

if (execlp(cmd1, cmd1, cmd2,cmd3,NULL)<0)

printf(\ exit(2); } } else {

if (execlp(cmd1, cmd1,NULL)<0)

printf(\ exit(2); }

}

wait(NULL); } } }

void pwd() {

char dir[50]; getcwd(dir,50); printf(\}

4.5 mini_shell.cÑ¡×÷¶þ

#include #include #include #include void pwd(); main()

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)