This is the second group project, carried out by Holberton students. The goal of this assignment is to recreate the basic simple shell. It also encourages group and team work with a randomly assigned partner.
*Allowed editors: vi, vim, emac* s.
-
You are not allowed to use global* variables.
-
No more than 5 functions per file* .
-
it is not necessary to upload the test network to * your repository.
-
The prototypes of all your functions should be included in your header file called main.h.
-
Note that we will not provide the putchar function for this project.
1. [Interprete_line.c(#Interprete_line.c)
Read_Line - Read the input line and keep it in a buffer
Input_Tokenize - divide the input into multiple nodes
Run_Command - This function runs the command
Add_Node - This function adds a new node
Add_Node_End - This function adds a node to the end of a list
Elements_Counter - Counts the number of elements in a list
Free_List - release the elements of a list
Free_Grid - Free a array of pointers
Concatenate_Command - This function obtains the direction of the command
Path_Tokenize - Divide directories into multiple elements
_getenv - This function obtains the value of an environment variable
_strdup - returns a pointer to a new string that is duplicated
_calloc - allocates memory for a data type
_memset - fills memory with a constant byte
``` // clones the repository
$ git clone https://github.com/Sapitorico/holbertonschool-simple_shell.git
$ cd holbertonschool-simple_shell
</details>
<details>
<summary> <h3>Compilation and Testing</h3> </summary>
<h5>Your shell will be compiled this way:</h5>
```c
gcc -Wall -Werror -Wextra -pedantic -std=gnu89 *.c -o hsh
$ ./hsh
($) /bin/ls
hsh main.c shell.c
($)
($) exit
$
$ echo "/bin/ls" | ./hsh
hsh main.c shell.c test_ls_2
$
$ cat test_ls_2
/bin/ls
/bin/ls
$
$ cat test_ls_2 | ./hsh
hsh main.c shell.c test_ls_2
hsh main.c shell.c test_ls_2
$
- access (man 2 access)
- chdir (man 2 chdir)
- close (man 2 close)
- closedir (man 3 closedir)
- execve (man 2 execve)
- exit (man 3 exit)
- _exit (man 2 _exit)
- fflush (man 3 fflush)
- fork (man 2 fork)
- free (man 3 free)
- getcwd (man 3 getcwd)
- getline (man 3 getline)
- getpid (man 2 getpid)
- isatty (man 3 isatty)
- kill (man 2 kill)
- malloc (man 3 malloc)
- open (man 2 open)
- opendir (man 3 opendir)
- perror (man 3 perror)
- printf (man 3 printf)
- fprintf (man 3 fprintf)
- vfprintf (man 3 vfprintf)
- sprintf (man 3 sprintf)
- putchar (man 3 putchar)
- read (man 2 read)
- readdir (man 3 readdir)
- signal (man 2 signal)
- stat (__xstat) (man 2 stat)
- lstat (__lxstat) (man 2 lstat)
- fstat (__fxstat) (man 2 fstat)
- strtok (man 3 strtok)
- wait (man 2 wait)
- waitpid (man 2 waitpid)
- wait3 (man 2 wait3)
- wait4 (man 2 wait4)
- write (man 2 write)
01~