Nenhum arquivo ou diretório depois de digitar $ PATH no terminal

8

quando escrevo no terminal

echo $PATH

minha saída é

:/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin

mas quando eu escrevo apenas:

$PATH

essa saída eu não entendi direito, a saída é:

bash: :/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin: No such file or directory

e minha pergunta é: por que ele escreveu "Nenhum arquivo ou diretório?" cada diretório da variável PATH existe.

    
por wair92 23.02.2015 / 16:34

5 respostas

12

$PATH é uma variável, da qual tenho certeza de que você está ciente. Quando essa variável for resolvida, seria o mesmo que digitar :/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin: e esperar que algo aconteça. A razão pela qual echo $PATH funciona é porque você está explicitamente direcionando-o para a tela, em vez de dizer ao terminal para "fazer" $PATH .

    
por 23.02.2015 / 16:42
2

Caso você ainda não consiga isso das outras respostas, é o mesmo que isto:

$ 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

A primeira palavra de cada linha de comando tem que ser um comando . echo é um comando desse tipo. the , and/or e :/home/bo/bin:/usr/local/bin:/usr/sbin… não são. E, aparentemente, quando você digita uma linha de comando que começa com uma palavra que não é um comando, bash diz No such file or directory se a palavra contiver um ou mais / caracteres, e command not found se isso não acontecer.

    
por 23.02.2015 / 23:10
1

Ao digitar

$PATH

você está realmente fazendo nada além de expandir seu conteúdo na linha de comando:

:/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin

e este não é um comando válido, legitimamente levando à mensagem que você está recebendo.

O que você esperava que digitasse apenas $PATH ?

    
por 23.02.2015 / 16:43
0

No Linux, o terminal está aguardando por um command , $ PATH não é um comando, é um variable .

Quando você escreve echo $PATH , você está perguntando o conteúdo da variável e com o comando echo mostrando na tela.

    
por 23.02.2015 / 16:44
0

A variável $PATH contém vários diretórios separados por dois pontos. O shell está esperando um arquivo executável ou outro comando (por exemplo, um comando interno do shell, como cd ) como entrada. Comandos como ls e cat são apenas executáveis localizados em um dos diretórios $ PATH. Vários diretórios encadeados por dois pontos geralmente não formam um caminho de arquivo UNIX apropriado. Aviso: se você digitar apenas um dos diretórios sem os dois pontos, você obtém uma saída diferente.

    
por 23.02.2015 / 16:52

Tags