aboutsummaryrefslogtreecommitdiff
path: root/garbage
diff options
context:
space:
mode:
Diffstat (limited to 'garbage')
-rw-r--r--garbage1229
1 files changed, 1229 insertions, 0 deletions
diff --git a/garbage b/garbage
new file mode 100644
index 0000000..5b5afd8
--- /dev/null
+++ b/garbage
@@ -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