一 分析
要实现一个shell,需包含3个步骤
1)读入指令
2)指令解析
3)执行指令
1 从键盘读入指令
从键盘读入指令的几个要点:
1)调用getc函数等待并获取用户键盘输入。
2)每一行命令的结束符为'
',getsline函数就是通过这个结束符来判断用户是否完成指令的输入。
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char* cmdLine = (char*)malloc(sizeof(char)*100); char* prompt = "print your cmd >"; int i; while(1) { i = NextCmd(prompt,cmdLine); if(i != 0) { return i; } else { printf("you print a cmd: %s ",cmdLine); } } free(cmdLine); return 0; } int NextCmd(char* prompt,char* cmdLine) { int i; printf("%s",prompt); i = GetsLine(cmdLine); if(i != 0) { return i; } else { return 0; } } int GetsLine(char* result) { int word; while(1) { word = getc(stdin); if(word != ' ') { *result = word; result ++; } else { *result = '