📄 work2.c
字号:
#include<dulei2fuction.h>
main()
{
/***************欢迎语句****************/
printf("Welcome to Shell!\n");
while(1){
/*********(0)每次循环,参数清零*********/
is_pipe=0; is_redirect=0;
is_background=0;
input_len=0;
pathcmdsdirectorynum=0; cmdandparameternum=0;
/*********(1)打印提示符*********/
currentpath=get_current_dir_name();
printf("<%s> ",currentpath);
/*********(2)解析命令**********/
if(!get_string()) //获得用户输入的命令
continue; //输入为空时结束本此循环
set_pipeorredirect(input,input_len); //判断含不含有管道或者重定向命令,如果有is_pipe或者is_redirect=1
if(is_pipe||is_redirect){
/*******难点,以后再写********/ /* if(is_pipe) pipel(); if(is_redirect) redirect(); */ printf("too difficult\n"); free(input);
continue;
}
set_background(input,input_len); //判断含不含有后台执行命令,如果is_background=1,并得到命令参数
/*********(3)执行内部命令*******/
//exit命令,退出
if(strcmp(arg[0],"exit")==0){
printf("Bye! Thank you teacher!!!!!!!\n");
free(input);
break;
}
//cd命令,改变当前路径 if(strcmp(arg[0],"cd")==0){
int i,j; for(i=3,j=0;i<input_len;i++) //获取要改变的路径 buf[j++]=input[i];
buf[j]=0;
arg[1]=(char *)malloc(sizeof(char)*j);
strcpy(arg[1],buf); //将路径保存至arg[1]
cd_cmd(arg[1]); //改变路径
free(input);
continue;
} /**********(4)普通命令************/ if(is_pipe==0&&is_redirect==0){ if(searchfile()){ //搜索命令文件,若找到进入if execute_cmd(); //执行命令 } else{ //没有找到命令文件,进入下一个循环 continue; } }
}
return OK;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -