Repolode
oils-for-unix

oils-for-unix/oils

Oils 是兼容 bash 的 OSH 解释器与面向 Python/JavaScript 用户的新 shell 语言 YSH。

Star
3,400
Fork
194
未关闭 Issue
610
最近提交
4天前

这是什么?

Oils 是从 bash 迁移到更好的语言和运行时的一条路径。它包含 OSH,用于运行现有的 shell 脚本;以及 YSH,一种面向 Python 和 JavaScript 用户、希望避免传统 shell 语法的新 shell 语言。

项目主体用 Python 编写,代码简短,便于修改。通过自研工具将其翻译为 C++,生成体积小、速度快的可执行文件,运行时不依赖 Python。

本仓库主要面向贡献者。仓库提供开发版本的构建方式,可直接在 Python 下运行,并提供 wiki 和 Zulip 频道用于开发讨论。普通用户应前往官方发布页下载,而非直接克隆仓库。

核心功能

  • 01通过 OSH 运行现有的 bash 风格 shell 脚本
  • 02提供面向 Python 和 JavaScript 用户的新 shell 语言 YSH
  • 03使用 Python 编写,便于修改和快速原型开发
  • 04翻译为 C++,生成不依赖 Python 的小体积可执行文件
  • 05附带用于检验 shell 兼容性的 spec 测试集

适用场景

  • 在更一致的 shell 运行时中运行旧版 bash 脚本
  • 用类似 Python 的语法编写 shell 自动化脚本,替代传统 shell 写法
  • 通过修复未通过的 spec 测试为 shell 兼容性做贡献

快速上手

  1. 1

    按照维基上的贡献指南构建开发版本

  2. 2

    启动交互式 OSH shell

    bin/osh
  3. 3

    用 OSH 运行一个 shell 脚本

    bin/osh myscript.sh
  4. 4

    启动 YSH shell

    bin/ysh

使用前须知

  • 此仓库构建的是 Python 开发版,而非正式发布的二进制文件;普通用户应使用 oils.pub 上的压缩包发行版。
  • 元数据中的许可证不明确(NOASSERTION)。

标签

常见问题

oils 是什么?
Oils 是兼容 bash 的 OSH 解释器与面向 Python/JavaScript 用户的新 shell 语言 YSH。 Oils 是从 bash 迁移到更好的语言和运行时的一条路径。它包含 OSH,用于运行现有的 shell 脚本;以及 YSH,一种面向 Python 和 JavaScript 用户、希望避免传统 shell 语法的新 shell 语言。
oils 可以免费使用吗?用的什么许可证?
oils 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
oils 还在维护吗?
活跃维护中。oils 最近一次提交是在 2026年10月18日。
oils 适合用来做什么?
在更一致的 shell 运行时中运行旧版 bash 脚本 用类似 Python 的语法编写 shell 自动化脚本,替代传统 shell 写法 通过修复未通过的 spec 测试为 shell 兼容性做贡献
oils 怎么安装和运行?
按照维基上的贡献指南构建开发版本 启动交互式 OSH shell: bin/osh 用 OSH 运行一个 shell 脚本: bin/osh myscript.sh 启动 YSH shell: bin/ysh
在哪里获取 oils?
源代码和安装说明在 GitHub 上:https://github.com/oils-for-unix/oils

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目