TS/Thomas Stephan
EN
Projects
ProjectC / Shell

Just Shell

42 minishell project in C with AST parsing, pipelines, redirections, process execution and signal handling.

Technical demonstration

Context

Just Shell is a paired 42 minishell project by vanta and skydogzz. The repository contains parser, binary-tree, execution, pipeline, I/O, history, prompt and signal modules.

Visible result

The code turns command lines into a tree before execution. A representative command handled by the project structure is:

cat input.txt | grep error > errors.txt

Contribution

The README and repository show a two-person project, but do not map every module to one contributor. I therefore describe the parsing and execution work as team work unless a file-level source says otherwise.

Technical difficulty

The important part is coordinating AST traversal with POSIX process behaviour: pipes need file descriptors prepared in the right order, redirections need to affect only the relevant command, and signals need shell-specific behaviour while children are running.

Technical choices

  • C and a binary-tree representation for parsed commands
  • Dedicated execution modules for simple commands, logical execution and pipelines
  • I/O modules for infile, outfile and pipe handling
  • Signal modules for interactive shell behaviour

Validation and limits

The repository exposes GitHub Actions badges for compilation and Norminette, plus a 42 minishell score badge. I do not display performance numbers because no reproducible benchmark is provided.