爱净意的个人技术博客
你的位置:爱净意»计算机»

[计算机]c语言编写shell程序myshell

前一段时间,一个同学的朋友找到我,让我帮他完成一项作业。

作业的内容大体是制作一款简易的shell程序,程序的框架由命题人已经搭好,需要在现有的框架下完成一系列的命令,例如ls、cd、exit、time等等。

题目要求点击我

写好的程序代码点击我

源码文件分析如下:

myshell.c :主程序,接受参数,输出信息。

myshell.h:头文件定义引用

globals.c:对命令进行分类

parser.c:对命令进行解析,用了487行代码

execute.c:具体执行命令,我的主要是修改了这个文件,大概增加了200行代码

Makefile:编译程序

主要修改了execute.c,用于添加命令函数和执行命令。
还有myshell.h用于添加头文件和声明函数。

使用方法:
在目录下输入make,编译成myshell可执行程序。
然后./myshell进入命令行,即可执行shell名。
例如ls,cd /opt,time,/usr/bin/cal -y等

完成的功能有:
step0
建立了Makefile文件,使用make命令即可编译成myshell程序。

step1
执行外部命令,如/bin/ls或/usr/bin/cal -y

setp3
执行内部命令,也就是自己定义的命令
1. exit 退出命令
2. cd 切换目录,cd为切换到默认目录或者cd /opt 切换到指定目录。
3. time 执行时间命令
4. ls 列出目录ls ,ls /opt

step4
支持顺序执行;
支持与执行&&
支持或执行||

step6
支持文件输出重定向
ls > a.txt 重新写
ls >> a.txt 追加写

step9
后台执行函数
ls; /bin/ps & time
time将会后台执行

题目的目的主要考察c语言的基本功,以及linux函数的使用。

由于水平有限,题目的要求里有很多没法完成,如果小伙伴们有兴趣的话可以进一步完善哦。

作者: kevin
« »
除非注明,爱净意文章均为原创,转载请以链接形式标明本文地址
本文地址:http://aijingyi.com/2017/11/24/c%e8%af%ad%e8%a8%80%e7%bc%96%e5%86%99shell%e7%a8%8b%e5%ba%8fmyshell/
  • 拓展阅读:
  • 暂无相关文章

欢迎您发表评论:

 站内搜索

邮件订阅  预览

点击这里给我发消息 点击这里给我发消息

友情链接(不分先后)

控制面板

图标汇集

  • 爱净意
  • 文章导航
© 2020 爱净意 版权所有
自豪地采用 WordPress | 使用仿月光博客主题 | 页面装载时间:0.844毫秒,36查询