faboussard / 42_minishell

1 stars 0 forks source link

a TESTER particulirement car pas de premier test #86

Closed faboussard closed 4 months ago

faboussard commented 4 months ago

Set the $PATH to a multiple directory value (directory1:directory2) and ensure that directories are checked in order from left to right cd pwd..

melobern commented 4 months ago

Ça n'a rien à voir avec cd ou pwd, ni aucun builtin, à part peut-être export.

:arrow_right: Le PATH définit l'endroit où sont cherchées les commandes. :arrow_right: Si on unset PATH, aucune commande ne fonctionne en dehors des builtins, qui ne vont pas se chercher sur le PATH.

BASH$ unset PATH
BASH$ ls
bash: ls: No such file or directory

:arrow_right: Si on remet le PATH à /usr/bin, avant de mettre notre chemin actuel, il va effectuer la commande 'ls'.

BASH$ PATH=/bin:/usr/bin:/home/melodie/42_minishell
BASH$ ls
minishell_tests.txt  minitester.py  minitester.sh  README.md  screenshots  TEST_MINISTESTER

:thought_balloon: Dans mon exemple, j'ai copié notre programme (minishell) en nommant le nouveau "ls" avec un cp minishell ls et changé le PATH de BASH pour qu'il soit égal au répertoire de minishell, dans lequel se situe ce faux ls.

BASH$ PATH=/home/melodie/42_minishell
BASH$ ls
>>>  Minishell>$ 

:arrow_right: Le faux ls lance un minishell comme on peut le voir. :arrow_right: Je refais le test sur notre minishell : celui--ci prend bien le bon ls de /usr/bin et non pas le ls frauduleux.

➜  42_minishell git:(builtins) ✗ ./minishell 
>>>  Minishell>$ unset PATH
>>>  Minishell>$ export PATH=/bin:/usr/bin:/home/melodie/42_minishell
>>>  Minishell>$ ls
ignore_leaks.supp  ls               non           tests.txt
includes       Makefile         notes.txt
info.txt       minishell            srcs
libft          minitester-minishell-tester  sujet_correction.pdf

:warning: Le seul point potentiellement dérangeant est que faire PATH=quelque_chose au lieu de export PATH=quelque_chose ne fonctionne pas, quand BASH prend bien en compte ce PATH=comme son nouveau PATH sans la commande export. :warning: Reste à voir si le minishell doit export aussi quand on fait juste VAR=quelque_chose ou si ce n'est pas à gérer.

>>  Minishell>$ unset PATH
>>>  Minishell>$ ls
minishell: ls: No such file or directory
>>>  Minishell>$ PATH=/usr/bin:/home/melodie/42_minishell/
>>>  Minishell>$ ls
minishell: ls: No such file or directory
faboussard commented 4 months ago

ok tres bien, non VAR=quelque chose tout seul sans "export" le precedent nest pas a gerer.