From 5120f27b598898430f5b71e727a982a06229575d Mon Sep 17 00:00:00 2001 From: benstrb Date: Sun, 12 Oct 2025 22:06:14 +0200 Subject: [PATCH] exec --- shell2 | Bin 20640 -> 16080 bytes shell2.c | 51 ++++++++++++++++++++++++++++++++++----------------- 2 files changed, 34 insertions(+), 17 deletions(-) diff --git a/shell2 b/shell2 index 155bb78e7b0783bbf8c2e823852c5f966e94584a..c5c3806c34e6253ebdb98a512ba60aaf105b2e7d 100755 GIT binary patch literal 16080 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 BnP~t3 diff --git a/shell2.c b/shell2.c index 720743b..9a88258 100644 --- a/shell2.c +++ b/shell2.c @@ -1,33 +1,34 @@ -#include #include -#include +#include #include #include -#include +#include +#include #include +#include #define clear() printf("\033[H\033[J") void init_shell() { - clear(); + clear(); - printf("\n\n\n\n******************************************"); - printf("\n\n\n\t****MY SHELL****"); - printf("\n\n\t-USE AT YOUR OWN RISK-"); - printf("\n\n\n******************************************"); + printf("\n\n\n\n******************************************"); + printf("\n\n\n\t****MY SHELL****"); + printf("\n\n\t-USE AT YOUR OWN RISK-"); + printf("\n\n\n******************************************"); - char* username = getenv("USER"); - printf("\n\nUSER is: @%s\n", username); - sleep(1); + char *username = getenv("USER"); + printf("\n\nUSER is: @%s\n", username); + sleep(1); - clear(); + clear(); } -int take_input(char* str) { - char* buf; +int take_input(char *str) { + char *buf; buf = readline("\n>>> "); - if(strlen(buf) != 0) { + if (strlen(buf) != 0) { add_history(buf); strcpy(str, buf); return 0; @@ -42,17 +43,33 @@ void print_dir() { printf("\nDir: %s", cwd); } -def execute(char** parsed) { +void execute_args(char **parsed) { pid_t pid = fork(); if (pid == -1) { printf("\nFailed forking child.."); return; } else if (pid == 0) { - + if (execvp(parsed[0], parsed) < 0) { + printf("\nCould not execute command.."); + } + exit(0); + } else { + wait(NULL); + return; } } +void open_help() { + puts("\n***Welcome to my shell help" + "\n-Use the shell at your own risk..." + "\nList of commands support:" + "\n>cd" + "\n>ls" + "\n>exit" + "\n>all other general commands available in UNIX shell"); +} + int main() { init_shell(); }