阶段一:读取ls到shell内部
if(flag == 1)
char *cmd = readline(buf,xxx);
阶段二:解析cmd字符串
char cmd = parse_string(cmd); //ls -l ./
argv[1] = xx;argv[2] = xxx;....
阶段三:查找cmd
addr = find_cmd(argv[0],argv[1],....);
环境变量
PATH=/usr/bin:/usr/sbin:/bin:/sbin:.../..///
阶段四:调用cmd对应的可执行代码
int (*ptr)(xx) = addr;
ptr();
if(flag == 1)
char *cmd = readline(buf,xxx);
阶段二:解析cmd字符串
char cmd = parse_string(cmd); //ls -l ./
argv[1] = xx;argv[2] = xxx;....
阶段三:查找cmd
addr = find_cmd(argv[0],argv[1],....);
环境变量
PATH=/usr/bin:/usr/sbin:/bin:/sbin:.../..///
阶段四:调用cmd对应的可执行代码
int (*ptr)(xx) = addr;
ptr();