Skip to content

在Windows下执行用Unix shell语法编写的简单sh文件

Notifications You must be signed in to change notification settings

thinszx/winshell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

操作系统课程设计

课设要求

  1. 操作系统接口:兼容Unix/Linux 命令接口3。(1-2 人,难度:5)
  • 为Windows 操作系统建立一个兼容Unix/Linux 的shell 文件执行命令接口;
  • 核心是实现.sh 格式文件的解读和执行
  • 应该包括常用的shell 文件的流程控制语句,如顺序、循环和分支转移等,命令的内容与详细格式请查阅Unix/Linux 命令手册;

已完成功能

整体的一些功能

  • 转义字符 \ 
  • 通过 ; 换行
  • 注释的识别与跳过
  • 通过 ctrl+c 结束语句执行或循环,但不结束shell
  • 通过命令行读入文件
  • 添加 ls cd pwd 等内置命令

if分支语句

  • 多层嵌套的if分支 - 通过栈实现
  • if-else 的分支 - 通过定义几种有限的状态,识别当前状态是否合法实现
  • fi 进行一个分支块的结尾
  • 检测 fi 的数量,并提示相关的信息(多/少了fi) - 通过栈实现
  • if 块执行前就进行 fi 的检查(需要预先将所有内容读进内存)

变量

  • 存储变量以及值
  • 将变量的存储结构改为链表或hash表,以便快速搜索
  • 变量的更新
  • 变量的设置与删除 - 可以将 set/unset 设置为内置命令,检测到后转入固定程序
  • 通过 $ 引用变量的值

while循环语句

  • 循环语句是基于变量的,要先完成变量的支持
  • 通过 ctrl+c 结束循环,但不结束shell
  • for/until 等更高级语句的支持

TODO

  1. 上面那些未完成的功能
  2. 整理文件结构

About

在Windows下执行用Unix shell语法编写的简单sh文件

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published