阶段小结(minishell的设计与总结)

项目需求:

 1.获取终端用户输入的命令,并输出相应的执行结果。
touch
cp
mv

ls
ls -a
ls -l

mkdir
rmdir
pwd
cd

ln
ln -s

exit ---------->退出minishell

2. 使用多文件方式实现,使用Makefile管理

重要函数预习:

1.首先,我们需要了解Linux的相关函数调用,举例可知。

例如:cp 1.txt 2.txt 其分为三段,cp函数调用,1.txt与2.txt 两个文件的文件名,其效果为,将1.txt的内容拷贝到2.txt。

由此可知,我们需要将截取的函数分段,及接收cp-1.txt-2.txt

所有我们迎来第一个函数:strtok将接收的字符串遇到空格截断

 我们定义了一个指针用来接收指向的截断地址,存放在cmd-arg[i]中。

2.理解题目要求,我们还需要进行多文件管理

我们要开始多文件管理,首先就要进行分类,我们将.h文件放在include中集中管理,将.c文件和makefile文件放在src文件中进行调控,那么,makfile中包含的是什么呢 ,内容如下:

app:$(src)

        $(cc)  $^  -o  $@  -I(INCLUDE)  $(FLAG)i

$^(依赖文件)指代$(src)

$@(目标文件)指代app。之后使用方式为make更新,./app使用

-I(INCLUDE)指代上一层的include文件夹内的,h文件。

 

 大体轮廓已经构造完成,我们开始进行具体功能的实现。

具体功能:

1.touch: 

分包装.c文件

分包装.h文件 

主函数内进行分段之后的if判断语句touch阶段(完整代码在文章结尾)

 

2.cp

同样分为.c .h 主函数内容。后面简写由左至右。

 

 

判断条件接上面touch

 3.mv

我们这次写的mv只包括了更改文件名,没有包括文件的移动。

4.ls类(着重ls  -l) 

 

我们可知ls有三种方式分别为(ls  , ls  -a , ls  -l),我们从接收的k[i]中判断位置,例如k[0]指代ls位置,k[1]指代{-a或者-l},由此判断进入哪个函数进行执行。

 5.mkdir和rmdir

6.pwd和cd 

7.ln和ln -s

有陷阱ln,判断ln 与-s阶段,将截断分为了四段,软链接ln -s 1.txt 1.link为四段,在软链接传参中要注意。

 

完整代码: (切记添加头文件)

 成果代码展示(部分)

编程学习,继续加油! 

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值