分析并运行shell

  • 实验任务要求

本次实验的内容由下面几部分组成:

  1. 分析且运行myshell
  2. 扩充myshell功能,使其支持以下内部命令
  1. Cd 目录—更改当前的工作目录到另一个目录,如果目录未指定,输出当前目录,如果目录不存在,应当有错误信息提示
  2. Echo 内容—显示echo后的内容并换行
  3. Help —简短概要地输出myshell的使用方法和基本功能
  4. Jobs —输出myshell当前的一系列子进程,必须提供子进程的命名和PID号
  1. 添加重定向和管道功能

二、实验原理和方法设计

                         使用教材给出的myshell框架进行编程

                         使用专业语法分析工具flex实现语法分析

三、实验工具和环境配置说明

                 操作系统ubuntu

                 使用函数chdir实现改变当前目录

                 使用dup实现重定向

                 使用pipe实现管道功能

                 使用fork创建子进程

                 使用execvp执行外部命令

四、实验步骤

  • 实现cd功能
  1. 功能展示

目录结构如下所示

目录未指定

目录不存在

更改目录

  1. 程序实现

匹配字符串,如果第一个字符串为cd,执行相应函数

函数实现如下所示

参数数量为1,说明没有指定目录

参数数量大于2,报错

参数数量为1时,执行chdir函数并以第2个参数作为函数输入,执行成功,成功反馈,若失败,目录不存在

  • Echo命令

已知echo命令为ubuntu的外部命令,程序存放在/bin目录下

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值