From: Christopher Uhlig Date: Fri, 9 Aug 2024 17:08:18 +0000 (+0200) Subject: first ideas of my understanding X-Git-Url: https://git.dkaiser.de/?a=commitdiff_plain;h=29a8e10e63f7e4ed1b08c4984c6c01431d3ccb06;p=42%2Fminishell.git first ideas of my understanding --- diff --git a/src/builtins_part_one.c b/src/builtins_part_one.c new file mode 100644 index 0000000..d7ab540 --- /dev/null +++ b/src/builtins_part_one.c @@ -0,0 +1,173 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* builtins_part_one.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: chuhlig +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/08/09 17:01:16 by chuhlig #+# #+# */ +/* Updated: 2024/08/09 19:07:31 by chuhlig ### ########.fr */ +/* */ +/* ************************************************************************** */ + +int echo(char **av) +{ + int i; + int f; + + i = 1; + if (av[1][0] == '\0') + { + write(1, "\n", 1); + return (1); + } + if (ft_strcmp(av[1], "-n")) + { + i++; + f = 1; + } + while (av[i]) + { + write(1, &av[1], ft_strlen(av[i])); + i++; + } + if (f) + write(1, "\n", 1); + return (0); +} +// Und args wären bei +// echo Hello World +// dann +// echo, Hello und World + + +// Die Builtins haben bitte int als return type. 0 = Success, 1 = Error usw. +// Als Parameter kann ich dir die das hier geben: +// char **args +// Aufpassen: args[0] ist der Name des Commands. +// t_env *env +// Hier hast du alle Variablen drin. +// Schau dir dafür am besten env.h an. + + + +// 2-G-4:~ chuhlig$ echo -n hello +// hello2-G-4:~ chuhlig$ echo test -n hello +// test -n hello + + + +// minishell % echo -n "Das ist" +// echo -n " ein Beispiel" +// echo " für echo -n." + +// 2-G-4:~ chuhlig$ echo 'hello world' +// hello world +// 2-G-4:~ chuhlig$ echo hello'world' +// helloworld +// 2-G-4:~ chuhlig$ echo hello""world +// helloworld +// 2-G-4:~ chuhlig$ echo '' + +// 2-G-4:~ chuhlig$ echo "$PWD" +// /Users/chuhlig +// 2-G-4:~ chuhlig$ echo '$PWD' +// $PWD +// 2-G-4:~ chuhlig$ echo "aspas ->'" +// aspas ->' +// 2-G-4:~ chuhlig$ echo "aspas -> ' " +// aspas -> ' +// 2-G-4:~ chuhlig$ echo 'aspas ->"' +// aspas ->" +// 2-G-4:~ chuhlig$ echo 'aspas -> " ' +// aspas -> " +// 2-G-4:~ chuhlig$ echo "> >> < * ? [ ] | ; [ ] || && ( ) & # $ \ <<" +// > >> < * ? [ ] | ; [ ] || && ( ) & # $ \ << +// 2-G-4:~ chuhlig$ echo '> >> < * ? [ ] | ; [ ] || && ( ) & # $ \ <<' +// > >> < * ? [ ] | ; [ ] || && ( ) & # $ \ << +// 2-G-4:~ chuhlig$ echo "exit_code ->$? user ->$USER home -> $HOME" +// exit_code ->0 user ->chuhlig home -> /Users/chuhlig +// 2-G-4:~ chuhlig$ echo 'exit_code ->$? user ->$USER home -> $HOME' +// exit_code ->$? user ->$USER home -> $HOME +// 2-G-4:~ chuhlig$ echo "$" +// $ +// 2-G-4:~ chuhlig$ echo '$' +// $ +// 2-G-4:~ chuhlig$ echo $ +// $ + +// 2-G-4:~ chuhlig$ echo "test" -n hello +// test -n hello +// 2-G-4:~ chuhlig$ echo -n "test" -n hello +// test -n hello2-G-4:~ chuhlig$ echo -n "test" echo -n hello +// test echo -n hello2-G-4:~ chuhlig$ + + + +// 2-G-4:~ chuhlig$ echo -n "test1 test2" test3 +// test1 test2 test32-G-4:~ chuhlig$ +// 2-G-4:~ chuhlig$ echo -n " test1 test2 " 'test3 ' +// test1 test2 test3 2-G-4:~ chuhlig$ +// 2-G-4:~ chuhlig$ echo -n test1test2 +// test1test22-G-4:~ chuhlig$ +// 2-G-4:~ chuhlig$ echo test1 -n +// test1 -n +// 2-G-4:~ chuhlig$ +// 2-G-4:~ chuhlig$ echo "test1 -n" +// test1 -n +// 2-G-4:~ chuhlig$ +// 2-G-4:~ chuhlig$ echo -n -n test1 +// test12-G-4:~ chuhlig$ +// 2-G-4:~ chuhlig$ echo -n -n -n -n -n test1 +// test12-G-4:~ chuhlig$ +// 2-G-4:~ chuhlig$ echo - +// - +// 2-G-4:~ chuhlig$ echo -- +// -- +// 2-G-4:~ chuhlig$ +// 2-G-4:~ chuhlig$ echo " -nn " +// -nn +// 2-G-4:~ chuhlig$ +// 2-G-4:~ chuhlig$ echo "-n test1 -n test2" +// -n test1 -n test2 +// 2-G-4:~ chuhlig$ +// 2-G-4:~ chuhlig$ echo "test1 -n test2" +// test1 -n test2 +// 2-G-4:~ chuhlig$ +// 2-G-4:~ chuhlig$ echo ~42 +// ~42 +// 2-G-4:~ chuhlig$ +// 2-G-4:~ chuhlig$ echo -n -n -nasd +// -nasd2-G-4:~ chuhlig$ +// 2-G-4:~ chuhlig$ echo -n -n -n-nnnnn +// -n-nnnnn2-G-4:~ chuhlig$ +// 2-G-4:~ chuhlig$ echo -n -nnnnnnn -n -nnn -nnnnn -n-n +// -n-n2-G-4:~ chuhlig$ +// 2-G-4:~ chuhlig$ echo -n -nnnnnnn -n -nnn -nnnnn -n feel my pain +// feel my pain2-G-4:~ chuhlig$ +// 2-G-4:~ chuhlig$ echo -n -n -n-n +// -n-n2-G-4:~ chuhlig$ +// 2-G-4:~ chuhlig$ echo "'totally logical'" +// 'totally logical' +// 2-G-4:~ chuhlig$ echo 'totally logical' +// totally logical +// 2-G-4:~ chuhlig$ echo ''totally logical'' +// totally logical +// 2-G-4:~ chuhlig$ echo ""'totally logical'"" +// totally logical + +// 2-G-4:~ chuhlig$ eCho + +// 2-G-4:~ chuhlig$ eChO + +// 2-G-4:~ chuhlig$ eCHO + +// 2-G-4:~ chuhlig$ ECHO +int pwd_builtin(void) +{ + char cwd[1028]; + + getcwd(cwd, sizeof(cwd)); + printf("%s\n", cwd); + return (0); +} \ No newline at end of file