/4221sh

42 school's 21sh project

Primary LanguageC

21sh

42 school's 21sh project

Continuation of the previous shell project -- minishell

Main goals:

  • Proper pipeline (lexer, parser, AST)
  • Rewritten ft_readline
  • ft_readline as a separate lib (deps on libft)

Features:

  • Lexer, Parser, AST
  • Pipes
  • fd redirections and closing
  • Local variables
  • Set variables with text (only)
  • Customisable prompt with SH_PROMPT variable

Line-editing Features:

  • Move your cursor arround with left and right keys
  • Jump home/end of the line
  • Multiline editing
  • Copy/Cut/Paste
  • Automatic color removal for prompt
  • Dumb mode with one-line editing

Example usages:

$> 21sh /path/to/script or $> cat /path/to/script | 21sh runs the script with 21sh. It exists after the script ran.

$> 21sh runs an interactive shell.

Changelog:

Tuesday 3rd July 2018: 21sh is almost finished! Features from minishell are kept.