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

{ int id; char cmd[80]; char *cmd1; char *cmd2;

printf(\

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

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

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

cmd2=strtok(NULL,\ //½«ÃüÁîÐзֿª³ÉÁ½²¿·Ö if ( strcmp(cmd, \ exit(0); //ÄÚ²¿ÃüÁîquit if ( strcmp(cmd, \ pwd(); //ÄÚ²¿ÃüÁîpwd

if ( strcmp(cmd, \ {sleep(5); printf(\ÄÚ²¿ÃüÁîpwd else { //ÍⲿÃüÁî id=fork();

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

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

wait(NULL); } } }

void pwd() {

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

²Î¿¼ÎÄÏ×

[1] ÕÅÁá. Linux²Ù×÷ϵͳ »ù´¡¡¢Ô­ÀíÓëÓ¦Ó㬱±¾©£ºÇ廪´óѧ³ö°æÉ磬2014Äê2Ô¡£

[2] Neil Matthew, Richard Stones. Linux³ÌÐòÉè¼Æ£¨µÚ3°æ£©. ³Â½¡µÈÒë. ±±¾©£ºÈËÃñÓʵç³ö°æÉç, 2007. [3] Mark G. Sobell. LinuxÃüÁî¡¢±à¼­Æ÷ÓëShell±à³Ì. ÑîÃ÷¾üµÈÒë. ±±¾©£ºÇ廪´óѧ³ö°æÉç, 2007.

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ì滻Ϊ@)