实验报告:Project2:Creating a Shell Interface

本文档介绍了在Ubuntu 10.04系统和Eclipse环境下,如何用Java编写一个简单的Shell接口。程序包括初始化、主循环、命令处理(如ls、pwd、cd)以及历史命令的调用。在cd命令处理中,通过创建ls进程来检查路径的正确性。虽然存在一些问题,但该实验加深了作者对java process、shell的理解。
摘要由CSDN通过智能技术生成

Project2:

Creating a Shell Interface

 

一、实验环境

Ubuntu  10.04系统

Eclipse开发平台

 

二、实验过程:

1、新建java project,编写代码
程序大体思路:

1、程序初始化:初始化数组commandHistory以存储历史命令、MyPath存放当前路径、commandLine存放读入的命令,以及其他变量

2、做while主循环,不停读入用户输入的命令

3、对命令进行判断、操作

3.1  如果命令是以“!”开头,判断后面的数据未超范围后,读取历史命令:把历史命令赋值给commandLine。之后进行其他命令的判断,就可以在一个循环中完成读取历史名利的操作。

3.2  以“ ”(空格)分隔命令,存入lineSplit中。

3.3  如果是退出命令,调用System.exit(0)退出。

3.4  如果首个命令是cd命令:根据后边参数是否以“/”开头分为绝对路径、相对路径两部分。

绝对路径:以“/”分隔路径,存入currentSplit中。之后逐层对路径进行判断,currentPath存放当前判断路径:新建ls命令的进程,并使进程路径为currentPath,以其输出与下一级路径比对,无误进行下次判断,否则提示错误,开始下次主循环。路径全对后,对MyPath修改,cd命令执行完毕。

相对路径:与绝对路径大体相似,但currentPath初值为当前路径,最后对MyPath赋值是在原来MyPath基础上改变。

3.5  其余命令,新建输入命令的进程,设置进程路径为MyPath后执行,输出进程输出。

 

2、运行并测试

此程序可实现较简单的shell功能:1、基本命令:如ls、pwd等等;2、工作路径的变换:cd命令;3、记录命令历史,并可通过“!!”“!*”调用。

此shell中存在很多bug,尤其是在!操作、cd操作中,已经添加代码如测试cd命令路径等改正一些问题,但还并不完善。

 

3、在实验中遇到的一些问题

在对修改路径cd命令处理时,想用System.setProperty()函数对程序的路径进行直接修改,发现始终无法达到效果。网上查询后,得知这个路径是写保护的,无法通过此方法修改。之后想到解决办法:cd命令先把路径记录在MyPath中,在之后的命令新建进程时,通过调用

public     ProsessBuilder      director(File       director)函数对进程路径修改后,开启进程即可。

 

在cd命令对路径的判断上,我也下了较大力气。首先想到新建“ls”进程进行以此判断,然后发现cd可以有相对路径、绝对路径两种输入,又进行了判断。后来又想到多个路径连在一起的输入,又通过“/”分隔,加入for循环逐层对路径进行判断,某层路径错误后就报错,停止下层判断。现在本程序支持绝对、相对路径输入,并支

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《实用计算机软件》 实验报告 实验报告题目: 某企业大门建造方案 姓名: 学号: 年级: 专业: 指导教师: 日期: 年 月 日 项目概述 project实验报告全文共11页,当前为第1页。本次计算机实用软件做的项目是有关于某企业大门工程有关的一些前期准备工作的流程。包括确定项目的范围、编写计划书和准备一系列相关材料等。 project实验报告全文共11页,当前为第1页。 项目内容 1.任务 project实验报告全文共11页,当前为第2页。 project实验报告全文共11页,当前为第2页。 project实验报告全文共11页,当前为第3页。 project实验报告全文共11页,当前为第3页。 2.资源 project实验报告全文共11页,当前为第4页。 project实验报告全文共11页,当前为第4页。 3.任务+资源 project实验报告全文共11页,当前为第5页。 project实验报告全文共11页,当前为第5页。 project实验报告全文共11页,当前为第6页。 project实验报告全文共11页,当前为第6页。 project实验报告全文共11页,当前为第7页。 project实验报告全文共11页,当前为第7页。 project实验报告全文共11页,当前为第8页。 project实验报告全文共11页,当前为第8页。 共享资源项目 三.实验体会或收获 project2010软件课程的学习,使我学会了项目类软件的使用,以及对大二上学期的项目管理课程更深一步的强化学习了一下,对今后的社会工作会有很大的帮助。 project实验报告全文共11页,当前为第9页。 project实验报告全文共11页,当前为第9页。 Project完成报告 一、项目介绍 施工工程一直是人们谈论的焦点,该行业在如今社会发展领域占据了主要地位,一个大型房产从筹办到竣工是一个庞大且复杂的过程,其每一个环节都可以单独作为一个项目进行操作。 项目三要素包括范围、时间、费用,对于房地产项目来说范围可以是获得竞标书、按要求交付房子;时间可以指何时开时间建造何时竣工、何时销售;费用可以指建造房产花费多少人力、物力等等。 此次作业将房地产开发大体流程分为三个项目:建设工程、市政工程、办理用地手续,以"建设工程"为主项目,"市政工程"、"办理用地手续"作为子项目,最后将三个项目合并,合并主要包括创建资源库、插入项目、创建链接与调配资源等操作,目的是实现共享,方便分析与查阅项目成本、资源使用情况、项目进度等信息 二、优化说明 为了保证项目实施有条不紊地进行,需要对项目不断地调整、优化、以满足实际需求,例如: 将"办理建设项目地征求意见函"与"办理用地手续"项目中的任务"交地"的任务间相关性类型设置为"开始—开始",因为"办理建设项目地征求意见函"行为必须在"交地"开始后才能开始。如果按照系统默认的"完成—开始"任务相关性类型则会浪费资源,"交地"完成后可以直接开始"把办理建设项目地征求意见函"。 设置计算方式查看关键任务,关键任务的时差为零,所以对于不为零的关键任务需要及时调整。 设置比较基准,在任务工作表视图中选择"差异"命令,可以查看比较基准开始时间、比较基准完成时间等信息。 三、应用界面 project实验报告全文共11页,当前为第10页。建设工程甘特图 project实验报告全文共11页,当前为第10页。 project实验报告全文共11页,当前为第11页。 project实验报告全文共11页,当前为第11页。 project实验报告
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值