quand j'écris en terminal
echo $PATH
ma sortie est
:/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin
mais quand j'écris juste:
$PATH
cette sortie je ne comprends pas bien, la sortie est:
bash: :/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin: No such file or directory
et ma question est, pourquoi a-t-il écrit "Aucun tel fichier ou répertoire?" chaque répertoire de la variable PATH existe.
$PATH
est une variable dont vous êtes certainement au courant. Lorsque cette variable est résolue, cela équivaut à taper :/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin:
et à s’attendre à ce que quelque chose se passe. La raison pour laquelle echo $PATH
fonctionne est que vous le dirigez explicitement vers l'écran plutôt que de dire au terminal de "faire" $PATH
.
Si vous ne l'obtenez toujours pas dans les autres réponses, c'est la même chose que ceci:
$ echo the quick brown fox
the quick brown fox
$ the quick brown fox
bash: the: command not found
$ echo and/or the black and white cats
and/or the black and white cats
$ and/or the black and white cats
bash: and/or: No such file or directory
Le premier mot de chaque ligne de commande doit être un commande. echo
est une telle commande. the
, and/or
et :/home/bo/bin:/usr/local/bin:/usr/sbin…
ne le sont pas. Et, apparemment, lorsque vous tapez une ligne de commande commençant par un mot qui n'est pas une commande, bash indique No such file or directory
si le mot contient un ou plusieurs caractères /
et command not found
s'il ne le contient pas.
En tappant
$ PATH
vous ne faites rien d'autre qu'élargir son contenu en ligne de commande:
:/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin
et ce n'est pas une commande valide, menant légitimement au message que vous recevez.
À quoi vous attendiez-vous en tapant seulement $PATH
?
Sous Linux, le terminal attend un command
, $ PATH n’est pas une commande, c’est un variable
.
Lorsque vous écrivez echo $PATH
, vous demandez le contenu de la variable et utilisez la commande echo
pour l'afficher à l'écran.
La variable $PATH
contient plusieurs répertoires séparés par des deux points. Le shell attend un fichier exécutable ou une autre commande (par exemple, une commande intégrée au shell, telle que cd
name__) comme entrée. Les commandes telles que ls
et cat
ne sont que des exécutables situés dans l’un des répertoires $ PATH. Plusieurs répertoires chaînés par des deux points ne constituent généralement pas un chemin de fichier UNIX approprié. Remarque: si vous entrez un seul des répertoires sans les deux points, vous obtenez une sortie différente.