A Unix shell compatible with TCSH, written in C as part of the Epitech PSU project.
Explore the repository »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
C_zsh (42sh) is a Unix shell written in C, designed to behave like TCSH. It implements an interactive REPL with a styled prompt, line editing, persistent history, pipelines, redirections, quoting, $VAR expansion, and a set of built-in commands (cd, env, setenv, unsetenv, which, where, repeat, foreach, history, source, and more).
To get a local copy up and running, follow these simple steps.
You need a C compiler (gcc or clang) and GNU Make. Valgrind is recommended for memory-leak checks during development.
- Clone the repository
git clone https://github.com/OpenCz/C_zsh.git
cd C_zsh- Build the project
makemake # build the ./42sh binary
./42sh # start the interactive shellLaunch the shell with ./42sh for interactive use. See the Project Architecture and Execution Flow docs for details on the internals.
For more advanced examples, please refer to the repository structure and adapt the code as needed.
See the open issues for a full list of proposed features (and known issues).
Contributions are welcome and appreciated. Please review the contribution guide and follow the repository conventions when making changes.
See CONTRIBUTING.md for setup instructions, commit conventions, and the PR process.
Distributed under the MIT License. See LICENSE for more information.
- tcsh manual - Reference behavior for expansion order, builtins, and error messages