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

网站做弹窗广告潮州网站建设

网站做弹窗广告,潮州网站建设,dw表格怎么做网站搜索,网站建设与管理指什么shell shell就是操作系统提供给用户与操作系统进行交互的命令行界面。它可以理解为一个用户与操作系统之间的接口,用户可以通过输入命令来执行各种操作,如文件管理、进程控制、软件安装等。Shell还可以通过脚本编程实现自动化任务。 常见的Unix系统中使…

shell

shell就是操作系统提供给用户与操作系统进行交互的命令行界面。它可以理解为一个用户与操作系统之间的接口,用户可以通过输入命令来执行各种操作,如文件管理、进程控制、软件安装等。Shell还可以通过脚本编程实现自动化任务。

常见的Unix系统中使用的默认shell是Bash。除了Bash,还有其他一些常见的shell,如 C Shell、Kron Shell 等,它们对于不同的用户需求和习惯提供了不同的特性和语法。

自定义Shell

打印

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

获取的字符串分割

在这里插入图片描述
在这里插入图片描述

执行命令

在这里插入图片描述
在这里插入图片描述

一些问题

在这里插入图片描述

在这里插入图片描述

内建命令的处理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

原码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>#define SIZE 1024
#define MAX_ARGC 64
#define SEP " "char *argv[MAX_ARGC];
char pwd[SIZE];
char env[SIZE]; // for test
int lastcode = 0;const char* HostName()
{char *hostname = getenv("HOSTNAME");if(hostname) return hostname;else return "None";
}const char* UserName()
{char *hostname = getenv("USER");if(hostname) return hostname;else return "None";
}const char *CurrentWorkDir()
{char *hostname = getenv("PWD");if(hostname) return hostname;else return "None";
}char *Home()
{return getenv("HOME");
}int Interactive(char out[], int size)
{// 输出提示符并获取用户输入的命令字符串"ls -a -l"printf("[%s@%s %s]$ ", UserName(), HostName(), CurrentWorkDir());fgets(out, size, stdin);out[strlen(out)-1] = 0; //'\0'return strlen(out);
}void Split(char in[])
{int i = 0;argv[i++] = strtok(in, SEP); // "ls -a -l"while(argv[i++] = strtok(NULL, SEP)); if(strcmp(argv[0], "ls") ==0){argv[i-1] = (char*)"--color";argv[i] = NULL;}
}void Execute()
{pid_t id = fork();if(id == 0){// 让子进程执行命名execvp(argv[0], argv);exit(1);}int status = 0;pid_t rid = waitpid(id, &status, 0);if(rid == id) lastcode = WEXITSTATUS(status); //printf("run done, rid: %d\n", rid);
}int BuildinCmd()
{int ret = 0;// 1. 检测是否是内建命令, 是 1, 否 0if(strcmp("cd", argv[0]) == 0){// 2. 执行ret = 1;char *target = argv[1]; //cd XXX or cdif(!target) target = Home();chdir(target);char temp[1024];getcwd(temp, 1024);snprintf(pwd, SIZE, "PWD=%s", temp);putenv(pwd);}else if(strcmp("export", argv[0]) == 0){ret = 1;if(argv[1]){strcpy(env, argv[1]);putenv(env);}}else if(strcmp("echo", argv[0]) == 0){ret = 1;if(argv[1] == NULL) {printf("\n");}else{if(argv[1][0] == '$'){if(argv[1][1] == '?'){printf("%d\n", lastcode);lastcode = 0;}else{char *e = getenv(argv[1]+1);if(e) printf("%s\n", e);}}else{printf("%s\n", argv[1]);}}}return ret;
}int main()
{while(1){char commandline[SIZE];// 1. 打印命令行提示符,获取用户输入的命令字符串int n = Interactive(commandline, SIZE);if(n == 0) continue;// 2. 对命令行字符串进行切割Split(commandline);// 3. 处理内建命令n = BuildinCmd();if(n) continue;// 4. 执行这个命令Execute();}return 0;
}
http://www.tj-hxxt.cn/news/29976.html

相关文章:

  • 搭建一个app需要什么seo投放是什么意思
  • 微信官方网站怎么进入seo应该怎么做
  • 建设网站的价格表销售网络平台推广
  • 长沙网站制作教程seo中国
  • 做网站用上面软件写代码比较好青岛seo整站优化公司
  • 自己做的网站怎么传到服务器代写文章多少钱
  • 北京做网站好的公司关键词点击优化工具
  • 刚察县wap网站建设公司自媒体人15种赚钱方法
  • 外贸网站dns北京seo顾问外包
  • php制作网站网站页面优化内容包括哪些
  • 清河做网站chrome浏览器下载安卓手机
  • 网站开发用户名不存在新闻热点事件2021(最新)
  • 网站多久企业推广文案
  • 百度网站是百度公司做的吗爱站网关键字挖掘
  • 企业在线购物网站建设青岛seo排名公司
  • 网站供应商代发怎么做seo如何去做优化
  • 计算机网站开发书籍网络销售怎么做才能有业务
  • 东莞住房建设网站的网商业软文案例
  • 如何让网站自适应手机推广网站怎么制作
  • 良庆网站建设如何自己建网站
  • 手机网站底部代码免费的html网站
  • html网站如何更新整站seo优化
  • wordpress底部美化搜索引擎优化策略包括
  • 新疆网站优化北京网站建设东轩seo
  • 网站的技术维护一般要做些什么google seo优化
  • 武汉哪里做网站好台州seo优化公司
  • 投资网站建设广东seo加盟
  • 找人做网站多少钱百度代理公司怎么样
  • 吉林长春网络公司有哪些杭州seo专员
  • 17我们一起做网站首页图片点击率如何提高