端末に書き込むとき
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変数からのすべてのディレクトリが存在します。
$PATH
は変数であるため、ご存じのとおりです。その変数が解決されると、:/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin:
を入力して何かが起こることを期待するのと同じになります。 echo $PATH
が機能する理由は、端末に$PATH
を「実行する」ように指示するのではなく、明示的にパイプでディスプレイに出力するためです。
それでも他の回答からそれを得られない場合、それはこれと同じです:
$ 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
はそのようなコマンドです。 the
、and/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
しましょう?
Linuxでは、端末はcommand
を待機しています。$ PATHはコマンドではなく、variable
です。
あなたが書くときecho $PATH
変数の内容を尋ねており、コマンドecho
を使用して画面に表示しています。
変数$PATH
には、コロンで区切られた複数のディレクトリが含まれます。シェルは、実行可能ファイルまたはその他のコマンド(たとえば、cd
などのシェル組み込みコマンド)を入力として想定しています。 ls
やcat
などのコマンドは、$ PATHディレクトリの1つにある実行可能ファイルです。コロンで連結された複数のディレクトリは、通常、適切なUNIXファイルパスを形成しません。注意:コロンなしでディレクトリの1つだけを入力すると、別の出力が表示されます。