shell是一个命令行解释器,但很多人并不能很好地去理解它,但如果你能看懂这个简易的shell实现,问题就迎刃而解。
1.shell是一个命令行解释器。
2.它是一个程序,用来捕捉命令,并不会执行
3.shell是用户能和内核更好了交流的程序
1 #include<stdio.h>
2 #include<stdlib.h>
3 #include<unistd.h>
4 #include<sys/wait.h>
5 #include<string.h>
6 int main(){
7 while(1){
8 printf("[user@localhost path]$ ");
9 fflush(stdout);
10 //这里不能用换行刷新缓冲区,否则输入就另起一行
11 char scan[1024]={
0};
12 fgets(scan,1024,stdin);
13 //这一步一定要-1,因为输入的时候会输入一个回车,这一步把回车替换
14 scan[strlen(scan)-1]='\0';
15
16 char* idx=scan;
17 char* myagv[10]={
NULL};
18 int myagc=0;
19 while(*idx!='\0'){
20 if(*idx!=' '){
21 myagv[myagc]=idx;
22 ++myagc;
23 while(*idx!='\0'&&*idx!=' '){
24 ++idx