No description
Find a file
2025-12-02 16:01:39 +01:00
docs add terminal escape sequences doc 2025-11-03 17:09:35 +01:00
src change(shell): set prompt on one line 2025-12-02 16:01:39 +01:00
.envrc add flake 2025-11-12 09:37:56 +01:00
.gitignore update flake.nix 2025-11-12 13:59:24 +01:00
Cargo.lock add saving history to file 2025-11-18 12:15:02 +01:00
Cargo.toml add saving history to file 2025-11-18 12:15:02 +01:00
flake.lock add flake 2025-11-12 09:37:56 +01:00
flake.nix update flake.nix 2025-11-12 13:59:24 +01:00
LICENSE Add LICENSE 2025-10-21 16:27:54 +02:00
README.md Edit README.md 2025-11-26 14:14:52 +01:00

translating-shell

Translating shell (trash) is an (planned) interactive shell and (planned) interpreted scripting language that is a (planned) superset of bash. That is, every bash script is also a trash script (planned), but trash adds some nicer syntax, on top. (planned)

Built in Rust, with minimal dependencies (for now, only libc, dirs, exec and leftpad)

Using

For testing purposes only.

Clone the project, and run cargo run.

Features

Infrastructure

  • Analyzer
  • Lexer
  • AST
  • Interpreter

Language

  • Variables
  • Main control flow
  • Commands
  • Syntactic sugar

Shell

  • read/eval/print loop (basic implementation)
  • cli interface

Common

  • Pipes
  • Command substitions
  • String, backslash-escapes (basic implementation)
  • Subshells

Design principles

fish but POSIX-compliant and retrocompatible with bash. This is made to be minimalist, useful out-of-the box, and unintrusive. You can leave your default bashrc and it'll work (planned).