42-archive/42sh
2017-03-22 23:59:17 +01:00
..
42shelltest-tmp exit stauts alphabetic and setenv error assignement word 2017-03-21 01:41:57 +01:00
includes variable assignement protection 2017-03-22 23:23:58 +01:00
libft variable assignement protection 2017-03-22 23:23:58 +01:00
pdf interactive shell with termcaps 2016-10-28 21:24:29 +02:00
sample builtin_exit fixing ariard 2017-03-21 13:50:42 +01:00
shellscript exit stauts alphabetic and setenv error assignement word 2017-03-21 01:41:57 +01:00
src double quote lexing with inner bquotes 2017-03-22 23:59:17 +01:00
test exit stauts alphabetic and setenv error assignement word 2017-03-21 01:41:57 +01:00
TESTSHELL correctif on some stuff + ajout framework for test 2017-03-03 18:49:39 +01:00
.gitignore before pull 2017-03-13 14:06:54 +01:00
.gitmodules libft submodule reinit because of detached head state 2016-11-29 20:40:53 +01:00
.tags tokenization finished. interactive shell improvements for signal handlind (ISIG option turned off). next step is parsing, thinking of AST structure 2016-11-12 23:51:34 +01:00
.valgrind.supp exitstatus function, so i can set ? variable in one line with not memory handling. No more leaks, sexy debug macro DG(), valgrind suppression, gitignore 2016-12-10 00:20:59 +01:00
auteur fichier auteur 2017-03-15 18:22:24 +01:00
donovan_segaults_06-02 starting to fix redirects 2017-02-06 23:49:58 +01:00
log close #147 2017-03-22 15:54:09 +01:00
Makefile variable assignement protection 2017-03-22 23:23:58 +01:00
README.md readme markdown 2017-03-20 20:57:28 +01:00
scriptheader.sh ajout du super script pour pas push ses headers JUST DO IT 2017-03-15 04:26:54 +01:00
test_framework.sh correctif on some stuff + ajout framework for test 2017-03-03 18:49:39 +01:00
update_makefile.sh modif makefile + script 2017-03-19 13:44:44 +01:00

42sh

42sh school project.

Mandatory part:

  • Prompt without line edition.
  • Builtins cd, echo, exit, env, setenv, unsetenv with there options.
  • Executing simple commands with there parameters using PATH.
  • Support for redirection >, >>, <and |.
  • Logical operand &&and ||.
  • Separator ;.

Optional feature (five of theses are mandatory to validate the project):

  • Inhibitors ", 'and \.
  • Advanced redirections: aggregation of file output and heredoc <<.
  • Globbing: *, ?, [], {}, etc.
  • Backquotes `.
  • Subshell with operand ().
  • Local variable and builtin unset and export.
  • History with builtin historyand ! with options.
  • Advanced line edition.
  • File descriptors and builtin read with options.
  • Dynamical autocompletion.

Optional feature highly appreciated:

  • Job Control and builtins job, fg, bgand operand &.
  • Shell Scripting.

shell / subshell

line editing

Keys Functions
Opt+C
Opt+X
Opt+V
Copy
Cut
Paste
Opt+<
Opt+>
Move per words.
Opt+^
Opt+v
Move per line.
Ctrl+L Clear screen.
Ctrl+C Terminate/Kill current foreground process.
Ctrl+Z Suspend/Stop current foreground process.

history

Keys Functions
^
v
Browse the history.
Ctrl+R Research function.
!! Retype the last command.
!n Retype the n(numerical value) command from the begin of history.
!-n Retype the -n(numerical value) command from the last command.
!name Search for a command beginning with name.
!?name Search for a command which contain name.

autocompletion

globbing

hash table

job control

scripting