minishell
minishell copied to clipboard
MiniShell is a minimalistic shell interpreter, supporting features like basic command execution, environment variable handling, command chaining, redirections, pipes, subshells, and here documents.
The function was very dense and we resorted to bad practices like the comma operator to keep the function length within 25 lines for Norminette. - Split up long `else`...
It looks like the main signal handler is still the main process, not the subshell process. `SIGQUIT` in this example should quit the entire subshell, not just cat: ```sh (cat...
- [ ] First merge #339 --- - Reducing the double pointers makes it more clear when list pointers are not getting moved forward. - Move going to next cmd_table_node...
More testing is needed though. In theory, it should still clone successfully, but instead of the actual large files it would just clone the pointer files of LFS.
The same way as the `heredoc_status` enum. This can replace the `BAD_SUBSTITUTION` exit code macro. _Originally posted by @itislu in https://github.com/LeaYeh/minishell/pull/153#discussion_r1479627809_ --- These are the exit codes defined in the...
```sh bash-5.1$ cat | < notexist bash: notexist: No such file or directory bash-5.1$ echo $? 0 ``` Our exit code is `1`.
The only difference is that it can be at the end of a command line, like so: ```sh echo 1 ; echo 2 ; ``` But it has no effect.
The argument to `perror()` gets printed first, so most of the time it should be our `PROGRAM_NAME`, like so: ```c perror(PROGRAM_NAME) ``` ### IMPORTANT If an error occurred, no other...
`export` should ignore the `_` (single underscore) env variable that can get inherited from the previous shell. - [ ] Just `export` should not print an entry for `_`. -...