当前位置: 首页 > news >正文

湖南建设教育网站网站关键词的布局

湖南建设教育网站,网站关键词的布局,网站建设的目的及功能定位,wordpress搭建是英文0. bash原理介绍 bash实际上就是一个负责解析输入字符串工具. 我们需要做的事是这些: 手动分割出输入的字符串判断哪些变量是内建命令(自己执行),哪些命令是普通命令(创建子进程执行)实现的功能有: echo export cd 常规指令 输入、输出流重定向 #include<stdio.h> #i…

0. bash原理介绍

bash实际上就是一个负责解析输入字符串工具.

我们需要做的事是这些:

  1. 手动分割出输入的字符串
  2. 判断哪些变量是内建命令(自己执行),哪些命令是普通命令(创建子进程执行)
  3. 实现的功能有: echo export cd 常规指令 输入、输出流重定向
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<sys/stat.h>
#include<fcntl.h>#define HOST_NAME "hecs-225896"
#define LINE_SIZE 128
#define DELIM " "
#define SHEEL_COMMAND 0
#define NORMAL_COMMAND 1
#define IN_RESTREAM 0
#define OUT_RESTREAM 1
#define APPEND_RESTREAM 2 
#define NONE 0char pwd[LINE_SIZE];
char command[LINE_SIZE];
char* _argv[LINE_SIZE];
char myenv[LINE_SIZE];
int lastcode;
char * filename;
int restream = NONE;
int stream = 0;char * getpwd()
{return getcwd(pwd,sizeof(pwd));
}
char* getusr()
{return getenv("USER");
}
void interactive()
{char symbol;if(!strcmp(getenv("USER"),"root"))symbol='#';elsesymbol='$'; printf("%s@"HOST_NAME":""%s""%c ",getusr(),getpwd(),symbol);fgets(command,sizeof(command)-1,stdin);//消除'\n'command[strlen(command)-1]='\0';// printf("%s",command);
}
int split()
{for(int i=0;command[i];i++){if(command[i]=='>')  //写入重定向{command[i++]='\0';restream=OUT_RESTREAM;if(command[i]=='>') //追加重定向{restream=APPEND_RESTREAM;command[i++]='\0';while(command[i]==' ')i++;filename=command+i;printf("filename:%s\n",filename);stream=open(filename,O_CREAT|O_APPEND,0666);}else{while(command[i]==' ')i++;filename=command+i;printf("filename:%s\n",filename);stream=open(filename,O_CREAT|O_WRONLY|O_TRUNC,0666);}break;}else if(command[i]=='<'){restream=IN_RESTREAM;command[i++]='\0';while(command[i]==' ')i++;filename=command+i;printf("filename:%s\n",filename);stream=open(filename,O_RDONLY);break;}}int _argc=0;_argv[_argc++]=strtok(command,DELIM);while(_argv[_argc]=strtok(NULL,DELIM)){_argc++;}_argv[_argc]=NULL;return _argc;
}
int JudgeCommand()
{if(!strcmp(_argv[0],"cd")){return SHEEL_COMMAND;}else if(!strcmp(_argv[0],"echo")){return SHEEL_COMMAND;}else if(!strcmp(_argv[0],"export")){return SHEEL_COMMAND;}return NORMAL_COMMAND;
}
int execute_NormalCommand()
{pid_t id=fork();if(id<0){perror("fork faild\n");return 1;}else if(id==0){if(restream == OUT_RESTREAM || restream == APPEND_RESTREAM ){dup2(stream,1);}else if(restream == IN_RESTREAM){dup2(stream,0);}execvp(_argv[0],_argv);exit(2);}else if(id>0){int status=0;pid_t wid=waitpid(id,&status,0);if(wid==id)lastcode = WEXITSTATUS(status);}
}
int execute_ShellCommand(int argc)
{if(argc>=2&&!strcmp(_argv[0],"cd")){int rev=chdir(_argv[1]);if(rev!=0){perror("return faild");}}else if(argc>=2&&!strcmp(_argv[0],"echo")){if(_argv[1][0]=='$'){printf("%c",_argv[1][0]);char * env=getenv(_argv[1]+1);if(env)printf("%s\n",env);}else if(!strcmp(_argv[1],"?")){printf("%d\n",lastcode);lastcode=0;}elseprintf("%s\n",_argv[1]);}else if(argc>=2&&!strcmp(_argv[0],"export")){strcpy(myenv,_argv[1]);putenv(_argv[1]);}}
void BuildCommand(int *_argc)
{if(!strcmp(_argv[0],"ls")){_argv[(*_argc)++]="--color";_argv[*_argc]=NULL;}
}int main()
{while(1){interactive();int argc=split();if(argc==0)continue;// for(int i=0;i<argc;i++)printf("%s\n",_argv[i]);int RunFlag=JudgeCommand();BuildCommand(&argc);if(RunFlag==NORMAL_COMMAND){execute_NormalCommand();}else{execute_ShellCommand(argc);}}
}
http://www.yayakq.cn/news/415695/

相关文章:

  • 如何选择镇江网站优化省级网站 开发建设 资质
  • 网站app软件下载安装网站推广怎么推广
  • h5网站建设h做个外贸网站一般需要多少钱
  • 网站设计 成都企业网站建设合同模板
  • 德州市经济开发区建设局网站html5 移动网站
  • 在电脑上建设网站网站用哪些系统做的好处
  • 做网站有流量就有收入吗昆山做网站优化
  • 徐州网站建设建立网站的费用策划
  • 网络优化网站 site国外建设工程招聘信息网站
  • 注册公司网站如何注册wordpress php 文件
  • 五华建设银行网站wordpress主题手机
  • 做公司企业网站徐汇网站开发
  • 网站设计与制作教程1河南商务网站建设
  • 深圳市城乡和建设局网站首页杭州企业seo
  • 网站云主机吗cms网站建站流程
  • 思乐科技 成都网站建设中铁建设集团有限公司招标
  • 上海建筑电工证查询网站虚拟空间软件下载
  • 天水企业网站建设电商直播培训学校学费多少
  • 无锡优化网站费用筑龙网建筑资料下载
  • 合肥高端网站建设费用wordpress下载管理插件下载
  • 哪些网站是由wordpress做的抖音营销推广方案
  • 乐清手机网站网站建设报价单格式
  • 用linux做网站免费手机建站平台
  • 网站虚拟主机里的内容强制删除上海的设计网站有哪些内容
  • 做设计用图片的网站网站过度优化
  • 程序员做项目网站网站备案 是域名还是空间
  • 阿里云1m服务器可以搭建网站微信小商店
  • 好的网站你知道sql server wordpress
  • 教做甜点的网站大连设计网站的公司
  • 山东网站建设设计郑州网站网站建设