c语言hello world程序编写_C语言程序设计——自己编写一个简易shell程序

f4b2d1d45b8da9fb2cf3917755b0ce60.png

作为程序员,在Linux环境下,我们用得比较多的命令交互工具是Shell:

b7f94a23e4aba4dfc88faaa83a77c069.png

在Windows环境下,则是cmd:

d10f1d83a359752b7e8e3dd420f550cf.png

下面,我们编写一个简易的shell程序吧。

如果只实现命令交互,这个shell程序其实挺好实现的,算法可以用文字描述为:

void Shell程序(){    读取用户的输入;    if (用户输入的是命令1)    {          调用命令1的处理程序;    }   else if (用户输入的是命令2)    {          调用命令2的处理程序;    }   ...    else if (用户输入的是命令n)    {          调用命令n的处理程序;    }}

但是采用上面的算法,有个缺点:当我们新增命令时,上面的代码也会随之增加。

为了解决这个缺点,我们可以定义一个映射结构:

struct TCommandMap{    char*    命令名称;    Func    命令的处理函数;};

然后建立一个映射结构的数组:

struct TCommandMap CommandMaps[] =[    {"命令1", 函数1},    {"命令2", 函数2},    ...    {"命令n", 函数n}]

这样,当我们新增命令时,只在映射数组中增加一条记录就可以了。

这是简易Shell程序的包含的头文件:

caeafed79ac594a482f661dfebc84a22.png

这是简易Shell程序的命令处理函数:

b46590e661da40c3a47f177029d0ec79.png

这是简易Shell程序的数据结构定义:

d7d47b434af818006288b8a87250aed7.png

这是简易Shell程序的main()函数实现:

2d22eb8cf3d7cdddcfefb4400fa7db6c.png

这是简易Shell程序的编译命令:

2b713ac1fb204109352e3e9d46a2ca39.png

这是简易Shell程序的运行情况:

5b52a69f23e883ae746f9b6cfa3555ac.png

是不是有点像shell或者cmd?

不过说实在话,这个程序哪里是简易版,简直是寒碜版。

谢谢您的浏览!

#科技新星创作营#

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值