Building a Shell
9 hours ago
- #shell
- #programming
- #unix
- The author builds a toy shell named 'andsh' to understand shell internals better.
- The shell supports basic commands like 'cd', 'pwd', 'echo', and external commands via 'execvp'.
- Built-in commands like 'cd' must run in the shell process to affect the parent shell's state.
- Environment variable expansion is implemented for variables like '$HOME' and '$?'.
- Piping is supported using 'pipe()' and 'dup2()' to connect commands like 'printf abc | tr a-z A-Z | rev'.
- The shell uses the 'readline' library for line editing, history, and tab completion.
- Key missing features include quoting, redirection, and more built-in commands.
- The project is available on GitHub at healeycodes/andsh.