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函数的使用。
由于水平有限,题目的要求里有很多没法完成,如果小伙伴们有兴趣的话可以进一步完善哦。