Closed faboussard closed 5 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
ok tres bien, non VAR=quelque chose tout seul sans "export" le precedent nest pas a gerer.
Set the $PATH to a multiple directory value (directory1:directory2) and ensure that directories are checked in order from left to right cd pwd..