This is a reimplementation project of Yet Another Shell (yash) in Rust. Currently, only a minimal subset of the original yash is implemented. It will be extended to cover more features in the future.
Currently, yash can run shell scripts that use POSIX-compatible syntax. Interactive features are under development, and locale support is not yet implemented.
- Running shell scripts that only use POSIX-compatible syntax and features
- Interactive shell features
- Enhanced scripting features (Extensions to POSIX shell)
- Performance optimization
- Locale support
Yash should work on any Unix-like system. We are testing it on Linux and macOS. Windows is not supported, but it works under the Windows Subsystem for Linux (WSL).
To build and install yash, you need to have Rust installed. Go to https://rustup.rs/ and follow the instructions to install Rust. You will need the latest stable version of the Rust compiler.
Make sure the cargo
tool installed by rustup
is in your PATH
.
Then, run the following command:
cargo install yash-cli
To run a shell script, run yash3
with the script file as an argument.
Without an argument, yash3
will start a read-eval loop, but interactive features are not yet implemented.
The user manual is not yet available, but you can refer to the original yash manual at https://magicant.github.io/yash/doc/.
TBD
Yash is distributed under GPLv3.
Exceptionally, you can reuse the yash-executor
, yash-fnmatch
and
yash-quote
crates in your software under the
MIT License or
Apache License 2.0, whichever at your option.