⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 work2.c

📁 简单的SHELL编程
💻 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 + -