模仿Linux的shell,完成具备交互式功能的shell demo的c程序,命名为shelldemo
时间: 2024-10-08 12:18:21 浏览: 39
创建一个简单的C语言程序,模拟Linux shell的基本交互式功能,我们可以设计一个命令解析器和简单的命令执行结构。这里是一个基本的`shelldemo.c`示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 假设我们只有几个简单的命令处理
#define MAX_CMD_LENGTH 50
typedef enum { CMD_EXIT = -1, CMD_HELP } Command;
void print_help() {
printf("当前支持的命令:\n");
printf("1. help - 显示帮助信息\n");
printf("2. exit - 退出程序\n");
}
Command parse_command(char *input) {
if (!strcmp(input, "help")) {
return CMD_HELP;
} else if (!strcmp(input, "exit")) {
return CMD_EXIT;
} else {
printf("未知命令,请输入 'help' 获取帮助。\n");
return CMD_EXIT; // 未识别的命令默认视为退出
}
}
int main(int argc, char **argv) {
while (true) {
printf("$ ");
char input[MAX_CMD_LENGTH];
fgets(input, sizeof(input), stdin); // 接收用户输入并去掉换行符
input[strcspn(input, "\n")] = '\0'; // 清除fgets留下的换行符
Command cmd = parse_command(input);
switch (cmd) {
case CMD_HELP:
print_help();
break;
case CMD_EXIT:
printf("程序已退出.\n");
return 0;
}
}
}
```
**
阅读全文