我是靠谱客的博主 善良黑裤,最近开发中收集的这篇文章主要介绍操作系统实验——命令解释程序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

操作系统实验——命令解释程序

参考文章
https://blog.csdn.net/sophia__yu/article/details/79385398

1.实验要求

利用C语言编写一个微型命令解释程序minishell.c,该程序可接收并解释以下命令:
	(1) dir					    列出当前目录
	(2) cop	file1	 file2		拷贝文件
	(3)	era filename			删除文件
	(4) disp  string			显示字符串
	(5)	end					    结束,退出
要求:
	(1)检查命令的合法性,如果有错误,显示出错信息,等待重新输入;
	(2)命令前后有空格示为合法命令。

2. 代码实现

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

//去除首部空格
void trim(char * cmd1,char * tem){
    int m=0;
    while (cmd1[m]==' ')
        m++;
    strncpy(tem,cmd1+m,strlen(cmd1)-m);
    tem[strlen(cmd1)-m] = '';
}
int main(){
    char cmd1[80];
    char str2[80];
    char tem[80];
    char str3[80]={0};
    char *cmd;
    char *scwt[] = {"dir","cop" ,"era" ,"disp" ,"end"};
    char *scwt2[] = { "dir","cp", "rm" ,"echo","end" };
    static int cmdnum = 5;
    int j;
    while(1){
        printf( "Please input command:");
        gets(cmd1);
        trim(cmd1,tem);
        //找到第一个出现空格的位置
        int n=strcspn(tem ," ");
        if(n>0 || strlen(tem)>0){
            strncpy(str2,tem,n);
            str2[n]='';
            cmd=str2;
            for (j = 0; j < cmdnum; ++j) {
                if (strcmp(cmd,scwt[j])==0){
                    break;
                }
            }
            if (j==4)
                exit(0);
            if (j<cmdnum){
                //拼接字符串
                sprintf(str3,"%s%s",scwt2[j],tem+n);
                system(str3);
                continue;
            }
            printf("Bad commandn");
        }
    }
    return 0;
}

3.运行结果

image-20211022145830576

最后

以上就是善良黑裤为你收集整理的操作系统实验——命令解释程序的全部内容,希望文章能够帮你解决操作系统实验——命令解释程序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(135)

评论列表共有 0 条评论

立即
投稿
返回
顶部