web-dev-qa-db-fra.com

Aucun fichier ou répertoire de ce type après la saisie de $ PATH dans le terminal

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.

11
wair92

$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.

18
Daniel Park

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.

2
G-Man

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?

1
miroxlav

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.

0
jcbermu

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 cdname__) comme entrée. Les commandes telles que lset catne 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.

0
jkd