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

d1cac33 · Jan 17, 2021

History

13 Commits
Dec 27, 2020
Dec 27, 2020
Jan 17, 2021
Jan 11, 2021
Jan 17, 2021
Jan 17, 2021
Jan 11, 2021
Jan 17, 2021
Jan 13, 2021
Jan 11, 2021
Jan 13, 2021
Jan 17, 2021
Jan 17, 2021
Jan 17, 2021
Jan 11, 2021
Dec 27, 2020
Jan 13, 2021
Jan 11, 2021
Jan 17, 2021
Jan 17, 2021
Jan 17, 2021
Dec 29, 2020
Jan 17, 2021
Jan 17, 2021
Jan 17, 2021
Jan 17, 2021
Jan 11, 2021
Jan 17, 2021
Dec 27, 2020
Jan 17, 2021
Jan 17, 2021
Jan 17, 2021
Dec 28, 2020

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