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

13

quand j'écris dans le 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 at-il écrit "Aucun fichier ou répertoire?" chaque répertoire de la variable PATH existe.

wair92
la source

Réponses:

20

$PATHest une variable dont je suis sûr que vous êtes au courant. Lorsque cette variable est résolue, ce serait la même chose que de taper :/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin:et d'attendre que quelque chose se produise. La raison pour laquelle des echo $PATHtravaux est parce que vous êtes tuyauterie explicitement sur l'écran plutôt que de dire la borne à « faire » $PATH.

Daniel Park
la source
2

Dans le cas où vous ne l'obtenez toujours pas des 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 une commandeechoest une telle commande.  the, and/oret :/home/bo/bin:/usr/local/bin:/usr/sbin…ne le sont pas. Et, apparemment, lorsque vous tapez une ligne de commande qui commence par un mot qui n'est pas une commande, bash indique No such file or directorysi le mot contient un ou plusieurs /caractères, et command not foundsi ce n'est pas le cas.

G-Man dit «Réintègre Monica»
la source
1

En tappant

$ PATH

vous ne faites rien d'autre que d'étendre 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, conduisant légitimement au message que vous recevez.

Que pensiez-vous que la saisie ne $PATHfera que?

miroxlav
la source
Je suppose que l'attente qui $PATHimprimerait essentiellement la variable à l'écran sans essayer de l'exécuter, cependant, ce n'est pas le cas.
iDrwish
0

Sous Linux, le terminal attend un command, $ PATH n'est pas une commande, est un variable.

Lorsque vous écrivez, echo $PATHvous demandez le contenu de la variable et la commande l' echoaffiche à l'écran.

jcbermu
la source
0

La variable $PATHcontient 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, comme cd) en entrée. Les commandes telles que lset ne catsont que des exécutables situés dans l'un des répertoires $ PATH. Plusieurs répertoires chaînés ensemble par des deux-points ne forment 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.

jkd
la source