diff options
| author | Dominik Kaiser | 2025-01-14 18:32:42 +0100 |
|---|---|---|
| committer | GitHub | 2025-01-14 18:32:42 +0100 |
| commit | d4f3525a01f2566afed0da9209cb1c64bf188776 (patch) | |
| tree | 14d1f541418576d565f42f0d70faf1369fc17d1b /garbage | |
| parent | 3e692dac63577011bd5862a66767ef412183f26b (diff) | |
| parent | da80405b345b58f9e1bd83039b1df3771b5ca193 (diff) | |
| download | minishell-d4f3525a01f2566afed0da9209cb1c64bf188776.tar.gz minishell-d4f3525a01f2566afed0da9209cb1c64bf188776.zip | |
Merge branch 'miau' into uwu
Diffstat (limited to 'garbage')
| -rw-r--r-- | garbage | 1229 |
1 files changed, 1229 insertions, 0 deletions
@@ -0,0 +1,1229 @@ +_=/Users/chuhlig/Desktop/merged_minishell/minishell/./minishell +TERM=xterm-256color +USER_ZDOTDIR=/Users/chuhlig +ZDOTDIR=/Users/chuhlig +VSCODE_INJECTION=1 +VSCODE_GIT_IPC_HANDLE=/var/folders/zz/zyxvpxvq6csfxvn_n000ckjr0034mf/T/vscode-git-e47956ed09.sock +VSCODE_GIT_ASKPASS_MAIN=/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js +VSCODE_GIT_ASKPASS_EXTRA_ARGS= +VSCODE_GIT_ASKPASS_NODE=/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) +GIT_ASKPASS=/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh +COLORTERM=truecolor +LANG=en_US.UTF-8 +TERM_PROGRAM_VERSION=1.95.3 +TERM_PROGRAM=vscode +OLDPWD=/Users/chuhlig/Desktop/merged_minishell +PWD=/Users/chuhlig/Desktop/merged_minishell/minishell +SHLVL=1 +ORIGINAL_XDG_CURRENT_DESKTOP=undefined +XPC_FLAGS=0x0 +XPC_SERVICE_NAME=0 +TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n000ckjr0034mf/T/ +__CF_USER_TEXT_ENCODING=0x1928E:0x0:0x2 +SHELL=/bin/zsh +HOME=/Users/chuhlig +SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.ECcBYJZkxn/Listeners +LOGNAME=chuhlig +PATH=/Users/chuhlig/goinfre/.brew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/munki:/Library/Apple/usr/bin:/Users/chuhlig/goinfre/.brew/bin +MallocNanoZone=0 +USER=chuhlig +_=/Users/chuhlig/Desktop/merged_minishell/minishell/./minishell +TERM=xterm-256color +USER_ZDOTDIR=/Users/chuhlig +ZDOTDIR=/Users/chuhlig +VSCODE_INJECTION=1 +VSCODE_GIT_IPC_HANDLE=/var/folders/zz/zyxvpxvq6csfxvn_n000ckjr0034mf/T/vscode-git-e47956ed09.sock +VSCODE_GIT_ASKPASS_MAIN=/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js +VSCODE_GIT_ASKPASS_EXTRA_ARGS= +VSCODE_GIT_ASKPASS_NODE=/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) +GIT_ASKPASS=/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh +COLORTERM=truecolor +LANG=en_US.UTF-8 +TERM_PROGRAM_VERSION=1.95.3 +TERM_PROGRAM=vscode +OLDPWD=/Users/chuhlig/Desktop/merged_minishell +PWD=/Users/chuhlig/Desktop/merged_minishell/minishell +SHLVL=1 +ORIGINAL_XDG_CURRENT_DESKTOP=undefined +XPC_FLAGS=0x0 +XPC_SERVICE_NAME=0 +TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n000ckjr0034mf/T/ +__CF_USER_TEXT_ENCODING=0x1928E:0x0:0x2 +SHELL=/bin/zsh +HOME=/Users/chuhlig +SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.ECcBYJZkxn/Listeners +LOGNAME=chuhlig +PATH=/Users/chuhlig/goinfre/.brew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/munki:/Library/Apple/usr/bin:/Users/chuhlig/goinfre/.brew/bin +MallocNanoZone=0 +USER=chuhlig + + +//some test case about built in command + bash-3.2$ ls +Applications Music +Desktop Pictures +Documents francinette +Downloads getting-started +Library goinfre +Movies setup_docker_environment +bash-3.2$ pwd +/Users/chuhlig +bash-3.2$ ls | cd / | ls +Applications Music +Desktop Pictures +Documents francinette +Downloads getting-started +Library goinfre +Movies setup_docker_environment +bash-3.2$ pwd +/Users/chuhlig +bash-3.2$ env +TERM_PROGRAM=iTerm.app +TERM=xterm-256color +SHELL=/bin/zsh +TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n000ckjr0034mf/T/ +TERM_PROGRAM_VERSION=3.5.10 +TERM_SESSION_ID=w0t0p0:EC167FE5-607B-4E5F-A816-E8EF7FA09EC7 +USER=chuhlig +SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.BLODixwZXQ/Listeners +__CF_USER_TEXT_ENCODING=0x0:0:0 +TERM_FEATURES=T3LrMSc7UUw9Ts3BFGsSyHNoSxF +TERMINFO_DIRS=/Applications/iTerm.app/Contents/Resources/terminfo:/usr/share/terminfo +PATH=/Users/chuhlig/goinfre/.brew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/munki:/Library/Apple/usr/bin:/Applications/iTerm.app/Contents/Resources/utilities +PWD=/Users/chuhlig +LANG=en_US.UTF-8 +ITERM_PROFILE=Default +XPC_FLAGS=0x0 +XPC_SERVICE_NAME=0 +SHLVL=2 +HOME=/Users/chuhlig +COLORFGBG=7;0 +LC_TERMINAL_VERSION=3.5.10 +ITERM_SESSION_ID=w0t0p0:EC167FE5-607B-4E5F-A816-E8EF7FA09EC7 +LOGNAME=chuhlig +LC_TERMINAL=iTerm2 +COLORTERM=truecolor +_=/usr/bin/env +bash-3.2$ export test=test | unset USER +bash-3.2$ env +TERM_PROGRAM=iTerm.app +TERM=xterm-256color +SHELL=/bin/zsh +TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n000ckjr0034mf/T/ +TERM_PROGRAM_VERSION=3.5.10 +TERM_SESSION_ID=w0t0p0:EC167FE5-607B-4E5F-A816-E8EF7FA09EC7 +USER=chuhlig +SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.BLODixwZXQ/Listeners +__CF_USER_TEXT_ENCODING=0x0:0:0 +TERM_FEATURES=T3LrMSc7UUw9Ts3BFGsSyHNoSxF +TERMINFO_DIRS=/Applications/iTerm.app/Contents/Resources/terminfo:/usr/share/terminfo +PATH=/Users/chuhlig/goinfre/.brew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/munki:/Library/Apple/usr/bin:/Applications/iTerm.app/Contents/Resources/utilities +PWD=/Users/chuhlig +LANG=en_US.UTF-8 +ITERM_PROFILE=Default +XPC_FLAGS=0x0 +XPC_SERVICE_NAME=0 +SHLVL=2 +HOME=/Users/chuhlig +COLORFGBG=7;0 +LC_TERMINAL_VERSION=3.5.10 +ITERM_SESSION_ID=w0t0p0:EC167FE5-607B-4E5F-A816-E8EF7FA09EC7 +LOGNAME=chuhlig +LC_TERMINAL=iTerm2 +COLORTERM=truecolor +_=/usr/bin/env +bash-3.2$ env | grep test +bash-3.2$ ls | cd / | env +TERM_PROGRAM=iTerm.app +TERM=xterm-256color +SHELL=/bin/zsh +TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n000ckjr0034mf/T/ +TERM_PROGRAM_VERSION=3.5.10 +TERM_SESSION_ID=w0t0p0:EC167FE5-607B-4E5F-A816-E8EF7FA09EC7 +USER=chuhlig +SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.BLODixwZXQ/Listeners +__CF_USER_TEXT_ENCODING=0x0:0:0 +TERM_FEATURES=T3LrMSc7UUw9Ts3BFGsSyHNoSxF +TERMINFO_DIRS=/Applications/iTerm.app/Contents/Resources/terminfo:/usr/share/terminfo +PATH=/Users/chuhlig/goinfre/.brew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/munki:/Library/Apple/usr/bin:/Applications/iTerm.app/Contents/Resources/utilities +PWD=/Users/chuhlig +LANG=en_US.UTF-8 +ITERM_PROFILE=Default +XPC_FLAGS=0x0 +XPC_SERVICE_NAME=0 +SHLVL=2 +HOME=/Users/chuhlig +COLORFGBG=7;0 +LC_TERMINAL_VERSION=3.5.10 +ITERM_SESSION_ID=w0t0p0:EC167FE5-607B-4E5F-A816-E8EF7FA09EC7 +LOGNAME=chuhlig +LC_TERMINAL=iTerm2 +COLORTERM=truecolor +_=/usr/bin/env +bash-3.2$ ls | cd / | env +TERM_PROGRAM=iTerm.app +TERM=xterm-256color +SHELL=/bin/zsh +TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n000ckjr0034mf/T/ +TERM_PROGRAM_VERSION=3.5.10 +TERM_SESSION_ID=w0t0p0:EC167FE5-607B-4E5F-A816-E8EF7FA09EC7 +USER=chuhlig +SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.BLODixwZXQ/Listeners +__CF_USER_TEXT_ENCODING=0x0:0:0 +TERM_FEATURES=T3LrMSc7UUw9Ts3BFGsSyHNoSxF +TERMINFO_DIRS=/Applications/iTerm.app/Contents/Resources/terminfo:/usr/share/terminfo +PATH=/Users/chuhlig/goinfre/.brew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/munki:/Library/Apple/usr/bin:/Applications/iTerm.app/Contents/Resources/utilities +PWD=/Users/chuhlig +LANG=en_US.UTF-8 +ITERM_PROFILE=Default +XPC_FLAGS=0x0 +XPC_SERVICE_NAME=0 +SHLVL=2 +HOME=/Users/chuhlig +COLORFGBG=7;0 +LC_TERMINAL_VERSION=3.5.10 +ITERM_SESSION_ID=w0t0p0:EC167FE5-607B-4E5F-A816-E8EF7FA09EC7 +LOGNAME=chuhlig +LC_TERMINAL=iTerm2 +COLORTERM=truecolor +_=/usr/bin/env +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ ls | cd / | env +TERM_PROGRAM=iTerm.app +TERM=xterm-256color +SHELL=/bin/zsh +TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n000ckjr0034mf/T/ +TERM_PROGRAM_VERSION=3.5.10 +TERM_SESSION_ID=w0t0p0:EC167FE5-607B-4E5F-A816-E8EF7FA09EC7 +USER=chuhlig +SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.BLODixwZXQ/Listeners +__CF_USER_TEXT_ENCODING=0x0:0:0 +TERM_FEATURES=T3LrMSc7UUw9Ts3BFGsSyHNoSxF +TERMINFO_DIRS=/Applications/iTerm.app/Contents/Resources/terminfo:/usr/share/terminfo +PATH=/Users/chuhlig/goinfre/.brew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/munki:/Library/Apple/usr/bin:/Applications/iTerm.app/Contents/Resources/utilities +PWD=/Users/chuhlig +LANG=en_US.UTF-8 +ITERM_PROFILE=Default +XPC_FLAGS=0x0 +XPC_SERVICE_NAME=0 +SHLVL=2 +HOME=/Users/chuhlig +COLORFGBG=7;0 +LC_TERMINAL_VERSION=3.5.10 +ITERM_SESSION_ID=w0t0p0:EC167FE5-607B-4E5F-A816-E8EF7FA09EC7 +LOGNAME=chuhlig +LC_TERMINAL=iTerm2 +COLORTERM=truecolor +_=/usr/bin/env +bash-3.2$ ls | cd / | env | cd / +bash-3.2$ pwd +/Users/chuhlig +bash-3.2$ ls | cd / | env | cd ~ +bash-3.2$ ls | cd / | env | cd - +bash: cd: OLDPWD not set +bash-3.2$ ls | cd - | env +bash: cd: OLDPWD not set +TERM_PROGRAM=iTerm.app +TERM=xterm-256color +SHELL=/bin/zsh +TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n000ckjr0034mf/T/ +TERM_PROGRAM_VERSION=3.5.10 +TERM_SESSION_ID=w0t0p0:EC167FE5-607B-4E5F-A816-E8EF7FA09EC7 +USER=chuhlig +SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.BLODixwZXQ/Listeners +__CF_USER_TEXT_ENCODING=0x0:0:0 +TERM_FEATURES=T3LrMSc7UUw9Ts3BFGsSyHNoSxF +TERMINFO_DIRS=/Applications/iTerm.app/Contents/Resources/terminfo:/usr/share/terminfo +PATH=/Users/chuhlig/goinfre/.brew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/munki:/Library/Apple/usr/bin:/Applications/iTerm.app/Contents/Resources/utilities +PWD=/Users/chuhlig +LANG=en_US.UTF-8 +ITERM_PROFILE=Default +XPC_FLAGS=0x0 +XPC_SERVICE_NAME=0 +SHLVL=2 +HOME=/Users/chuhlig +COLORFGBG=7;0 +LC_TERMINAL_VERSION=3.5.10 +ITERM_SESSION_ID=w0t0p0:EC167FE5-607B-4E5F-A816-E8EF7FA09EC7 +LOGNAME=chuhlig +LC_TERMINAL=iTerm2 +COLORTERM=truecolor +_=/usr/bin/env +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ +bash-3.2$ ls | cd - | env +bash: cd: OLDPWD not set +TERM_PROGRAM=iTerm.app +TERM=xterm-256color +SHELL=/bin/zsh +TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n000ckjr0034mf/T/ +TERM_PROGRAM_VERSION=3.5.10 +TERM_SESSION_ID=w0t0p0:EC167FE5-607B-4E5F-A816-E8EF7FA09EC7 +USER=chuhlig +SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.BLODixwZXQ/Listeners +__CF_USER_TEXT_ENCODING=0x0:0:0 +TERM_FEATURES=T3LrMSc7UUw9Ts3BFGsSyHNoSxF +TERMINFO_DIRS=/Applications/iTerm.app/Contents/Resources/terminfo:/usr/share/terminfo +PATH=/Users/chuhlig/goinfre/.brew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/munki:/Library/Apple/usr/bin:/Applications/iTerm.app/Contents/Resources/utilities +PWD=/Users/chuhlig +LANG=en_US.UTF-8 +ITERM_PROFILE=Default +XPC_FLAGS=0x0 +XPC_SERVICE_NAME=0 +SHLVL=2 +HOME=/Users/chuhlig +COLORFGBG=7;0 +LC_TERMINAL_VERSION=3.5.10 +ITERM_SESSION_ID=w0t0p0:EC167FE5-607B-4E5F-A816-E8EF7FA09EC7 +LOGNAME=chuhlig +LC_TERMINAL=iTerm2 +COLORTERM=truecolor +_=/usr/bin/env +bash-3.2$ + + +////////////////////////////////////////////////////////////////// + +static int handle_redirections(t_redirection *redirs) { + if (redirs[0].type == INPUT_LIMITER) { + int pipe_fds[2]; + if (pipe(pipe_fds) == -1) { + perror("pipe"); + return -1; + } + write(pipe_fds[1], redirs[0].specifier, strlen(redirs[0].specifier)); + close(pipe_fds[1]); + dup2(pipe_fds[0], STDIN_FILENO); + close(pipe_fds[0]); + } else if (redirs[0].type == INPUT_FILE) { + int fd = open(redirs[0].specifier, O_RDONLY); + if (fd == -1) { + perror(redirs[0].specifier); + return -1; + } + dup2(fd, STDIN_FILENO); + close(fd); + } + + if (redirs[1].type == OUTPUT_OVERRIDE) { + int fd = open(redirs[1].specifier, O_WRONLY | O_CREAT | O_TRUNC, 0644); + if (fd == -1) { + perror(redirs[1].specifier); + return -1; + } + dup2(fd, STDOUT_FILENO); + close(fd); + } else if (redirs[1].type == OUTPUT_APPEND) { + int fd = open(redirs[1].specifier, O_WRONLY | O_CREAT | O_APPEND, 0644); + if (fd == -1) { + perror(redirs[1].specifier); + return -1; + } + dup2(fd, STDOUT_FILENO); + close(fd); + } + return 0; +} + +static int eval_rec(t_node *node, t_env **env, int in_fd) { + pid_t pid; + int p[2], result; + + if (node->type == PIPE_NODE) { + pipe(p); + pid = fork(); + if (pid == 0) { + close(p[0]); + dup2(in_fd, STDIN_FILENO); + dup2(p[1], STDOUT_FILENO); + result = eval_rec(node->content.pipe.left, env, in_fd); + exit(result); + } else { + close(p[1]); + dup2(p[0], STDIN_FILENO); + result = eval_rec(node->content.pipe.right, env, p[0]); + } + } else if (node->type == CMD_NODE) { + result = execute_cmd(&node->content.cmd, env); + } else { + panic("UNREACHABLE"); + result = EXIT_FAILURE; + } + return result; +} + +int eval(t_node *node, t_env **env) { + return eval_rec(node, env, STDIN_FILENO); +} + +int execute_cmd(t_cmd *cmd, t_env **env) { + if (handle_redirections(cmd->redirs) == -1) { + return EXIT_FAILURE; + } + + if (is_builtin(cmd->args[0])) { + return execute_builtin(cmd->args, env); + } else { + pid_t pid = fork(); + if (pid == 0) { + char *cmd_path = get_cmd_path(cmd->args[0], *env); + if (!cmd_path) { + fprintf(stderr, "%s: command not found\n", cmd->args[0]); + exit(EXIT_FAILURE); + } + execve(cmd_path, cmd->args, env_to_strlst(*env)); + perror("execve"); + exit(EXIT_FAILURE); + } else { + int status; + waitpid(pid, &status, 0); + return WEXITSTATUS(status); + } + } +} +have to update env list/tokenlist order or update the existing code to handle the order of the tokenlist/env list + +echo "Hello" | grep H this works + +also more to do on heredoc + +and for the for part of domenic removing the " ' frome the string +beside + + + +t_redirection *collect_redirs(t_token **tokens) +{ + t_redirection *result; + t_token *cur; + + cur = *tokens; + result = malloc(sizeof(t_redirection) * 2); + if (result == NULL) + return (free_tokens(*tokens), NULL); + set_redir(&result[0], 0, NULL); + set_redir(&result[1], 0, NULL); + while (cur != NULL && cur->next != NULL) + { + if (cur->type == REDIR_TOKEN && cur->next->type == STRING_TOKEN) + collect_and_check_redir(result, &cur); + else if (cur->type == REDIR_TOKEN) + return (free(result), NULL); + else + cur = cur->next; + } + if (cur && cur->type == REDIR_TOKEN) + return (free(result), NULL); + return (result); +} + +static void collect_and_check_redir(t_redirection *result, t_token **cur) +{ + char *heredoc_data; + t_token *next_token; + + heredoc_data = NULL; + if ((*cur)->content.redir_type == INPUT_LIMITER) + { + // Handle Here Document (<<) + heredoc_data = read_heredoc((*cur)->next->content.string); + if (!heredoc_data) + { + perror("Heredoc allocation failed"); + return ; + } + set_redir(&result[0], INPUT_LIMITER, heredoc_data); + } + else if ((*cur)->content.redir_type == INPUT_FILE) + { + // Handle Input File (<) + set_redir(&result[0], INPUT_FILE, ft_strdup((*cur)->next->content.string)); + } + else if ((*cur)->content.redir_type == OUTPUT_OVERRIDE) + { + // Handle Output File Overwrite (>) + set_redir(&result[1], OUTPUT_OVERRIDE, ft_strdup((*cur)->next->content.string)); + } + else if ((*cur)->content.redir_type == OUTPUT_APPEND) + { + // Handle Output File Append (>>) + set_redir(&result[1], OUTPUT_APPEND, ft_strdup((*cur)->next->content.string)); + } + else + { + // Handle unexpected cases + printf("Unknown redirection type encountered\n"); + } + // Advance the token pointer to skip the redirection token and its argument + next_token = (*cur)->next; + free_token_and_connect(*cur); // Free the current redirection token + if (next_token) + { + *cur = next_token->next; // Move to the next token after the argument + } + else + { + *cur = NULL; // No more tokens + } +} + +collect args apassen x +alsso fur arg x +muss in rpl parse x +und in parse cmd collect args and x + +format args seems to work later test x + + +Test 1: ✅ echo hello world +Test 2: ✅ echo "hello world" +Test 3: ✅ echo 'hello world' +Test 4: ✅ echo hello'world' +Test 5: ✅ echo hello""world +Test 6: ✅ echo '' +Test 7: ✅ echo "$PWD" +Test 8: ✅ echo '$PWD' + + + +Test 9: ❌ echo "aspas ->'" string formater checken +mini output = (aspas ->") +bash output = (aspas ->') +Test 10: ❌ echo "aspas -> ' " +mini output = (aspas -> ") +bash output = (aspas -> ' ) +Test 11: ✅ echo 'aspas ->"' +Test 12: ✅ echo 'aspas -> " ' + + +Test 13: ❌ echo "> >> < * ? [ ] | ; [ ] || && ( ) & # $ <<" +mini output = (> >> < README.md bash.supp bash_outfiles bonus bonus_bonus builtins extras local.supp loop.out manual_tests mini_outfiles os_specific outfiles pipes redirects syntax test_files tester wildcards ? [ ] | ; [ ] || && ( ) & # ) +bash output = (> >> < README.md bash.supp bash_outfiles bonus bonus_bonus builtins extras local.supp loop.out manual_tests mini_outfiles os_specific outfiles pipes redirects syntax test_files tester wildcards ? [ ] | ; [ ] || && ( ) & # $ <<) +Test 14: ✅ echo '> >> < * ? [ ] | ; [ ] || && ( ) & # $ <<' +Test 15: ❌ echo "exit_code ->$? user ->$USER home -> $HOME" +mini output = (exit_code ->/Users/dkaiser) +bash output = (exit_code ->0 user ->dkaiser home -> /Users/dkaiser) +Test 16: ✅ echo 'exit_code ->$? user ->$USER home -> $HOME' + +string formater checken +Test 17: ❌ echo "$" +mini output = (../minishell) +bash output = ($) +Test 18: ✅ echo '$' +Test 19: ❌ echo $ +mini output = (../minishell) +bash output = ($) +Test 20: ❌ echo $? +mini output = () +bash output = (0) +Test 21: ❌ echo $?HELLO +mini output = () +bash output = (0HELLO) +Test 22: ✅ pwd +Test 23: ✅ pwd oi +Test 24: ✅ export hello +Test 25: ✅ export HELLO=123 +Test 26: ❌ export A- +mini exit code = 0 +bash exit code = 1 +mini error = () +bash error = ( not a valid identifier) +Test 27: ✅ export HELLO=123 A +Test 28: ✅ export HELLO="123 A-" +Test 29: ✅ export hello world +Test 30: ❌ export HELLO-=123 +mini exit code = 0 +bash exit code = 1 +mini error = () +bash error = ( not a valid identifier) +Test 31: ❌ export = +mini exit code = 0 +bash exit code = 1 +mini error = () +bash error = ( not a valid identifier) +Test 32: ❌ export 123 +mini exit code = 0 +bash exit code = 1 +mini error = () +bash error = ( not a valid identifier) +Test 33: ✅ unset +Test 34: ✅ unset HELLO +Test 35: ✅ unset HELLO1 HELLO2 +Test 36: ✅ unset HOME +Test 37: ✅ unset PATH +Test 38: ✅ unset SHELL +Test 39: ❌ cd $PWD +mini exit code = 139 +bash exit code = 0 +Test 40: ❌ cd $PWD hi +mini exit code = 139 +bash exit code = 0 +Test 41: ❌ cd 123123 +mini exit code = 139 +bash exit code = 1 +mini error = () +bash error = ( No such file or directory) +Test 42: ❌ exit 123 +mini exit code = 0 +bash exit code = 123 +Test 43: ❌ exit 298 +mini exit code = 0 +bash exit code = 42 +Test 44: ❌ exit +100 +mini exit code = 0 +bash exit code = 100 +Test 45: ❌ exit "+100" +mini exit code = 0 +bash exit code = 100 +Test 46: ❌ exit +"100" +mini exit code = 0 +bash exit code = 100 +Test 47: ❌ exit -100 +mini exit code = 0 +bash exit code = 156 +Test 48: ❌ exit "-100" +mini exit code = 0 +bash exit code = 156 +Test 49: ❌ exit -"100" +mini exit code = 0 +bash exit code = 156 +Test 50: ❌ exit hello +mini exit code = 0 +bash exit code = 255 +mini error = () +bash error = ( numeric argument required) +Test 51: ❌ exit 42 world +mini exit code = 0 +bash exit code = 1 +mini error = () +bash error = ( too many arguments) +Test 52: ❌ +mini exit code = +bash exit code = 0 +———————————— pipes +Test 53: ✅ env | sort | grep -v SHLVL | grep -v ^_ +Test 54: ✅ cat ./test_files/infile_big | grep oi +Test 55: ✅ cat minishell.h | grep ");"$ +Test 56: ✅ export GHOST=123 | env | grep GHOST +———————————— redirects +Test 57: ✅ grep hi <./test_files/infile +Test 58: ✅ grep hi "<infile" < ./test_files/infile +Test 59: ✅ echo hi < ./test_files/infile bye bye +Test 60: ✅ grep hi <./test_files/infile_big <./test_files/infile +Test 61: ❌ echo <"./test_files/infile" "bonjour 42" +mini output = () +bash output = (bonjour 42) +mini exit code = 1 +bash exit code = 0 +mini error = ( No such file or directory) +bash error = () +Test 62: ❌ cat <"./test_files/file name with spaces" +mini output = () +bash output = (😈 😈 😈 This will break your minishell 😈 😈 😈) +mini exit code = 1 +bash exit code = 0 +mini error = ( No such file or directory) +bash error = () +Test 63: ✅ cat <./test_files/infile_big ./test_files/infile +Test 64: ✅ cat <"1""2""3""4""5" +Test 65: ✅ echo <"./test_files/infile" <missing <"./test_files/infile" +Test 66: ✅ echo <missing <"./test_files/infile" <missing +Test 67: ❌ cat <"./test_files/infile" +mini output = () +bash output = (hi hello world 42) +mini exit code = 1 +bash exit code = 0 +mini error = ( No such file or directory) +bash error = () +Test 68: ❌ echo <"./test_files/infile_big" | cat <"./test_files/infile" +mini output = () +bash output = (hi hello world 42) +mini exit code = 1 +bash exit code = 0 +mini error = ( No such file or directory No such file or directory) +bash error = () +Test 69: ✅⚠️ echo <"./test_files/infile_big" | cat "./test_files/infile" +mini error = ( No such file or directory) +bash error = () +Test 70: ❌ echo <"./test_files/infile_big" | echo <"./test_files/infile" +mini exit code = 1 +bash exit code = 0 +mini error = ( No such file or directory No such file or directory) +bash error = () +Test 71: ❌ echo hi | cat <"./test_files/infile" +mini output = () +bash output = (hi hello world 42) +mini exit code = 1 +bash exit code = 0 +mini error = ( No such file or directory) +bash error = () +Test 72: ✅ echo hi | cat "./test_files/infile" +Test 73: ✅⚠️ cat <"./test_files/infile" | echo hi +mini error = ( No such file or directory) +bash error = ( Broken pipe) +Test 74: ❌ cat <"./test_files/infile" | grep hello +mini output = () +bash output = (hello) +mini exit code = 1 +bash exit code = 0 +mini error = ( No such file or directory) +bash error = () +Test 75: ✅⚠️ cat <"./test_files/infile_big" | echo hi +mini error = ( No such file or directory) +bash error = ( Broken pipe) +Test 76: ✅ cat <missing +Test 77: ✅ cat <missing | cat +Test 78: ✅ cat <missing | echo oi +Test 79: ❌ cat <missing | cat <"./test_files/infile" +mini output = () +bash output = (hi hello world 42) +mini exit code = 1 +bash exit code = 0 +mini error = ( No such file or directory No such file or directory) +bash error = ( No such file or directory) +Test 80: ✅ echo <123 <456 hi | echo 42 +Test 81: ✅ ls >./outfiles/outfile01 +Test 82: ✅ ls > ./outfiles/outfile01 +Test 83: ✅ echo hi > ./outfiles/outfile01 bye +Test 84: ❌ ls >./outfiles/outfile01 >./outfiles/outfile02 +Only in ./bash_outfiles: outfile01 +mini outfiles: +README.md +bash.supp +bash_outfiles +bonus +bonus_bonus +builtins +extras +local.supp +loop.out +manual_tests +mini_outfiles +os_specific +outfiles +pipes +redirects +syntax +test_files +tester +wildcards +bash outfiles: +README.md +bash.supp +bash_outfiles +bonus +bonus_bonus +builtins +extras +local.supp +loop.out +manual_tests +mini_outfiles +os_specific +outfiles +pipes +redirects +syntax +test_files +tester +wildcards +Test 85: ❌ ls >./outfiles/outfile01 >./test_files/invalid_permission +Only in ./bash_outfiles: outfile01 +mini outfiles: +cat: ./mini_outfiles/*: No such file or directory +bash outfiles: +Test 86: ❌ ls >"./outfiles/outfile with spaces" +Only in ./bash_outfiles: outfile with spaces +mini outfiles: +cat: ./mini_outfiles/*: No such file or directory +bash outfiles: +README.md +bash.supp +bash_outfiles +bonus +bonus_bonus +builtins +extras +local.supp +loop.out +manual_tests +mini_outfiles +os_specific +outfiles +pipes +redirects +syntax +test_files +tester +wildcards +mini exit code = 1 +bash exit code = 0 +mini error = ( No such file or directory) +bash error = () +Test 87: ❌ ls >"./outfiles/outfile""1""2""3""4""5" +Only in ./bash_outfiles: outfile12345 +mini outfiles: +cat: ./mini_outfiles/*: No such file or directory +bash outfiles: +README.md +bash.supp +bash_outfiles +bonus +bonus_bonus +builtins +extras +local.supp +loop.out +manual_tests +mini_outfiles +os_specific +outfiles +pipes +redirects +syntax +test_files +tester +wildcards +mini exit code = 1 +bash exit code = 0 +mini error = ( No such file or directory) +bash error = () +Test 88: ❌ ls >"./outfiles/outfile01" >./test_files/invalid_permission >"./outfiles/outfile02" +Only in ./bash_outfiles: outfile01 +mini outfiles: +cat: ./mini_outfiles/*: No such file or directory +bash outfiles: +mini error = ( No such file or directory) +bash error = ( Permission denied) +Test 89: ✅ ls >./test_files/invalid_permission >"./outfiles/outfile01" >./test_files/invalid_permission +Test 90: ❌ cat <"./test_files/infile" >"./outfiles/outfile01" +Only in ./bash_outfiles: outfile01 +mini outfiles: +cat: ./mini_outfiles/*: No such file or directory +bash outfiles: +hi +hello +world +42 +mini exit code = 1 +bash exit code = 0 +mini error = ( No such file or directory) +bash error = () +Test 91: ✅ echo hi >./outfiles/outfile01 | echo bye +Test 92: ❌ echo hi >./outfiles/outfile01 >./outfiles/outfile02 | echo bye +Only in ./bash_outfiles: outfile01 +mini outfiles: +hi +bash outfiles: +hi +Test 93: ✅ echo hi | echo >./outfiles/outfile01 bye +Test 94: ❌ echo hi | echo bye >./outfiles/outfile01 >./outfiles/outfile02 +Only in ./bash_outfiles: outfile01 +mini outfiles: +bye +bash outfiles: +bye +Test 95: ✅ echo hi >./outfiles/outfile01 | echo bye >./outfiles/outfile02 +Test 96: ❌ echo hi >./outfiles/outfile01 >./test_files/invalid_permission | echo bye +Only in ./bash_outfiles: outfile01 +mini outfiles: +cat: ./mini_outfiles/*: No such file or directory +bash outfiles: +Test 97: ✅ echo hi >./test_files/invalid_permission | echo bye +Test 98: ❌ echo hi >./test_files/invalid_permission >./outfiles/outfile01 | echo bye +Only in ./mini_outfiles: outfile01 +mini outfiles: +hi +bash outfiles: +cat: ./bash_outfiles/*: No such file or directory +mini error = () +bash error = ( Permission denied) +Test 99: ✅ echo hi | echo bye >./test_files/invalid_permission +Test 100: ❌ echo hi | >./outfiles/outfile01 echo bye >./test_files/invalid_permission +Only in ./bash_outfiles: outfile01 +mini outfiles: +cat: ./mini_outfiles/*: No such file or directory +bash outfiles: +mini exit code = 139 +bash exit code = 1 +mini error = () +bash error = ( Permission denied) +Test 101: ❌ echo hi | echo bye >./test_files/invalid_permission >./outfiles/outfile01 +Only in ./mini_outfiles: outfile01 +mini outfiles: +bye +bash outfiles: +cat: ./bash_outfiles/*: No such file or directory +mini exit code = 0 +bash exit code = 1 +mini error = () +bash error = ( Permission denied) +Test 102: ✅⚠️ cat <"./test_files/infile" >./test_files/invalid_permission +mini error = ( No such file or directory) +bash error = ( Permission denied) +Test 103: ✅⚠️ cat >./test_files/invalid_permission <"./test_files/infile" +mini error = ( No such file or directory) +bash error = ( Permission denied) +Test 104: ✅ cat <missing >./outfiles/outfile01 +Test 105: ❌ cat >./outfiles/outfile01 <missing +Only in ./bash_outfiles: outfile01 +mini outfiles: +cat: ./mini_outfiles/*: No such file or directory +bash outfiles: +Test 106: ✅ cat <missing >./test_files/invalid_permission +Test 107: ✅⚠️ cat >./test_files/invalid_permission <missing +mini error = ( No such file or directory) +bash error = ( Permission denied) +Test 108: ❌ cat >./outfiles/outfile01 <missing >./test_files/invalid_permission +Only in ./bash_outfiles: outfile01 +mini outfiles: +cat: ./mini_outfiles/*: No such file or directory +bash outfiles: +Test 109: ✅ ls >>./outfiles/outfile01 +Test 110: ✅ ls >> ./outfiles/outfile01 +Test 111: ✅ ls >>./outfiles/outfile01 >./outfiles/outfile01 +Test 112: ✅ ls >./outfiles/outfile01 >>./outfiles/outfile01 +Test 113: ❌ ls >./outfiles/outfile01 >>./outfiles/outfile01 >./outfiles/outfile02 +Only in ./bash_outfiles: outfile01 +mini outfiles: +README.md +bash.supp +bash_outfiles +bonus +bonus_bonus +builtins +extras +local.supp +loop.out +manual_tests +mini_outfiles +os_specific +outfiles +pipes +redirects +syntax +test_files +tester +wildcards +bash outfiles: +README.md +bash.supp +bash_outfiles +bonus +bonus_bonus +builtins +extras +local.supp +loop.out +manual_tests +mini_outfiles +os_specific +outfiles +pipes +redirects +syntax +test_files +tester +wildcards +Test 114: ❌ ls >>./outfiles/outfile01 >>./outfiles/outfile02 +Only in ./bash_outfiles: outfile01 +mini outfiles: +README.md +bash.supp +bash_outfiles +bonus +bonus_bonus +builtins +extras +local.supp +loop.out +manual_tests +mini_outfiles +os_specific +outfiles +pipes +redirects +syntax +test_files +tester +wildcards +bash outfiles: +README.md +bash.supp +bash_outfiles +bonus +bonus_bonus +builtins +extras +local.supp +loop.out +manual_tests +mini_outfiles +os_specific +outfiles +pipes +redirects +syntax +test_files +tester +wildcards +Test 115: ✅ ls >>./test_files/invalid_permission +Test 116: ❌ ls >>./test_files/invalid_permission >>./outfiles/outfile01 +Only in ./mini_outfiles: outfile01 +mini outfiles: +README.md +bash.supp +bash_outfiles +bonus +bonus_bonus +builtins +extras +local.supp +loop.out +manual_tests +mini_outfiles +os_specific +outfiles +pipes +redirects +syntax +test_files +tester +wildcards +bash outfiles: +cat: ./bash_outfiles/*: No such file or directory +mini exit code = 0 +bash exit code = 1 +mini error = () +bash error = ( Permission denied) +Test 117: ❌ ls >>./outfiles/outfile01 >>./test_files/invalid_permission +Only in ./bash_outfiles: outfile01 +mini outfiles: +cat: ./mini_outfiles/*: No such file or directory +bash outfiles: +Test 118: ❌ ls >./outfiles/outfile01 >>./test_files/invalid_permission >>./outfiles/outfile02 +Only in ./bash_outfiles: outfile01 +Only in ./mini_outfiles: outfile02 +mini outfiles: +README.md +bash.supp +bash_outfiles +bonus +bonus_bonus +builtins +extras +local.supp +loop.out +manual_tests +mini_outfiles +os_specific +outfiles +pipes +redirects +syntax +test_files +tester +wildcards +bash outfiles: +mini exit code = 0 +bash exit code = 1 +mini error = () +bash error = ( Permission denied) +Test 119: ✅ ls <missing >>./test_files/invalid_permission >>./outfiles/outfile02 +Test 120: ✅⚠️ ls >>./test_files/invalid_permission >>./outfiles/outfile02 <missing +mini error = ( No such file or directory) +bash error = ( Permission denied) +Test 121: ✅ echo hi >>./outfiles/outfile01 | echo bye +Test 122: ❌ echo hi >>./outfiles/outfile01 >>./outfiles/outfile02 | echo bye +Only in ./bash_outfiles: outfile01 +mini outfiles: +hi +bash outfiles: +hi +Test 123: ✅ echo hi | echo >>./outfiles/outfile01 bye +Test 124: ❌ echo hi | echo bye >>./outfiles/outfile01 >>./outfiles/outfile02 +Only in ./bash_outfiles: outfile01 +mini outfiles: +bye +bash outfiles: +bye +Test 125: ✅ echo hi >>./outfiles/outfile01 | echo bye >>./outfiles/outfile02 +Test 126: ✅ echo hi >>./test_files/invalid_permission | echo bye +Test 127: ❌ echo hi >>./test_files/invalid_permission >./outfiles/outfile01 | echo bye +Only in ./mini_outfiles: outfile01 +mini outfiles: +hi +bash outfiles: +cat: ./bash_outfiles/*: No such file or directory +mini error = () +bash error = ( Permission denied) +Test 128: ✅ echo hi | echo bye >>./test_files/invalid_permission +Test 129: ❌ echo hi | echo >>./outfiles/outfile01 bye >./test_files/invalid_permission +Only in ./bash_outfiles: outfile01 +mini outfiles: +cat: ./mini_outfiles/*: No such file or directory +bash outfiles: +Test 130: ✅ cat <minishell.h>./outfiles/outfile +Test 131: ✅ cat <minishell.h|ls +———————————— extras +Test 132: ❌ +mini exit code = +bash exit code = 0 + + +Test 133: ❌ $PWD +mini exit code = 1 +bash exit code = 126 +mini error = ( Permission denied) +bash error = ( is a directory) + + +Test 134: ❌ $EMPTY +mini exit code = 1 +bash exit code = 0 +mini error = ( Permission denied) +bash error = () + +Test 135: ❌ $EMPTY echo hi +mini output = () +bash output = (hi) +mini exit code = 1 +bash exit code = 0 +mini error = ( Permission denied) +bash error = () +Test 136: ❌ ./test_files/invalid_permission +mini output = (./test_files/invalid_permission: command not found) +bash output = () +mini exit code = 1 +bash exit code = 126 +mini error = () +bash error = ( Permission denied) +Test 137: ❌ ./missing.out +mini output = (./missing.out: command not found) +bash output = () +mini exit code = 1 +bash exit code = 127 +mini error = () +bash error = ( No such file or directory) + + +Test 138: ❌ missing.out +mini output = (missing.out: command not found) +bash output = () +mini exit code = 1 +bash exit code = 127 +mini error = () +bash error = ( command not found) + + +Test 139: ❌ "aaa" +mini output = (aaa: command not found) +bash output = () +mini exit code = 1 +bash exit code = 127 +mini error = () +bash error = ( command not found) + + +Test 140: ❌ test_files +mini output = (test_files: command not found) +bash output = () +mini exit code = 1 +bash exit code = 127 +mini error = () +bash error = ( command not found) +Test 141: ❌ ./test_files +mini exit code = 1 +bash exit code = 126 +mini error = ( Permission denied) +bash error = ( is a directory) + + +Test 142: ❌ /test_files +mini exit code = 1 +bash exit code = 127 + +Test 143: ❌ minishell.h +mini output = (minishell.h: command not found) +bash output = () +mini exit code = 1 +bash exit code = 127 +mini error = () +bash error = ( command not found) +Test 144: ❌ $ +mini exit code = 1 +bash exit code = 127 +mini error = () +bash error = ( command not found) +Test 145: ❌ $? +mini exit code = 1 +bash exit code = 127 +mini error = ( Permission denied) +bash error = ( command not found) +Test 146: ❌ README.md +mini output = (README.md: command not found) +bash output = () +mini exit code = 1 +bash exit code = 127 +mini error = () +bash error = ( command not found) +74/146 +😭 😭 😭 +Collapse + + + + +1 + + + + + + + + + + + + +Message dkaiser + + + + + + + + + +Shift + Return to add a new line + + + + +Slack needs your permission to enable notifications. Enable notifications
\ No newline at end of file |
