web-dev-qa-db-ja.com

端末に$ PATHを入力した後、そのようなファイルまたはディレクトリはありません

端末に書き込むとき

echo $PATH

私の出力は

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

しかし、私がちょうど書くとき:

$PATH

この出力は私が正しく理解していない、出力は次のとおりです:

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

そして私の質問は、なぜ「そのようなファイルまたはディレクトリはありませんか?」と書かれたのですか? PATH変数からのすべてのディレクトリが存在します。

13
wair92

$PATHは変数であるため、ご存じのとおりです。その変数が解決されると、:/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin:を入力して何かが起こることを期待するのと同じになります。 echo $PATHが機能する理由は、端末に$PATHを「実行する」ように指示するのではなく、明示的にパイプでディスプレイに出力するためです。

19
Daniel Park

それでも他の回答からそれを得られない場合、それはこれと同じです:

$ 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

すべてのコマンドラインの最初のワードはcommandでなければなりません。 echoはそのようなコマンドです。 theand/or、および:/home/bo/bin:/usr/local/bin:/usr/sbin…はそうではありません。そして、どうやら、コマンドではないWordで始まるコマンドラインを入力すると、bashは、Wordに1つ以上のNo such file or directory文字が含まれている場合は/、次の場合はcommand not foundと表示します。そうではありません。

入力する

$ PATH

実際には、コマンドラインでコンテンツを展開する以外に何もしていません。

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

これは有効なコマンドではなく、正当にメッセージが表示されます。

タイピングだけだと何を期待したか$PATH しましょう?

1
miroxlav

Linuxでは、端末はcommandを待機しています。$ PATHはコマンドではなく、variableです。

あなたが書くときecho $PATH変数の内容を尋ねており、コマンドechoを使用して画面に表示しています。

0
jcbermu

変数$PATHには、コロンで区切られた複数のディレクトリが含まれます。シェルは、実行可能ファイルまたはその他のコマンド(たとえば、cdなどのシェル組み込みコマンド)を入力として想定しています。 lscatなどのコマンドは、$ PATHディレクトリの1つにある実行可能ファイルです。コロンで連結された複数のディレクトリは、通常、適切なUNIXファイルパスを形成しません。注意:コロンなしでディレクトリの1つだけを入力すると、別の出力が表示されます。

0
jkd