操作系统上机作业.
sh1.c: 实现shell程序,要求具备如下功能
–支持命令参数
$echo arg1 arg2 arg3
$ls /bin /usr/bin /home
–实现内置命令cd、pwd、exit
$cd /bin
$pwd
/bin
整体框架
一个死循环,一直在等待这用户输入命令.主要的工作都在eval这个函数里面.
int main(int argc,char *argv[]){
char cmdstring[MAX_CMD];
int n;
while(1){
printf("*myshell*>");
fflush(stdout);
/*read*/
if((n=read(0,cmdstring,MAX_CMD))<0){
printf("read error");
}
eval(cmdstring);
}
return 0;
}
eval函数实现
unix中命令分为内置命令和外置命令,内置命令不需要开进程就可以直接执行,比如cd,pwd.外置命令需要重开个进程才能执行,比如vim,/bin/ls,/bin/echo.
eval函数