Không có tệp hoặc thư mục như vậy sau khi nhập $ PATH trong thiết bị đầu cuối


13

khi tôi viết trong thiết bị đầu cuối

echo $PATH

đầu ra của tôi là

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

nhưng khi tôi viết chỉ:

$PATH

đầu ra này tôi không hiểu đúng, đầu ra là:

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

và câu hỏi của tôi là, tại sao nó lại viết "Không có tập tin hoặc thư mục như vậy?" tất cả các thư mục từ biến PATH tồn tại.

Câu trả lời:


20

$PATHlà một biến số, mà tôi chắc chắn rằng bạn biết. Khi biến đó được giải quyết, nó sẽ giống như gõ vào :/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin:và mong đợi điều gì đó xảy ra. Lý do echo $PATHhoạt động là vì bạn rõ ràng dẫn nó ra màn hình thay vì bảo thiết bị đầu cuối "làm" $PATH.


2

Trong trường hợp bạn vẫn không nhận được nó từ các câu trả lời khác, thì nó cũng giống như thế này:

$ 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

Từ đầu tiên của mỗi dòng lệnh phải là một lệnhecholà một lệnh như vậy.  the, and/or:/home/bo/bin:/usr/local/bin:/usr/sbin…không. Và rõ ràng, khi bạn nhập một dòng lệnh bắt đầu bằng một từ không phải là lệnh, bash sẽ nói No such file or directorynếu từ đó chứa một hoặc nhiều /ký tự và command not foundnếu nó không có.


1

Bằng cách gõ

$ PATH

bạn thực sự không làm gì khác hơn là mở rộng nội dung của nó tại dòng lệnh:

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

và đây không phải là một lệnh hợp lệ, hợp pháp dẫn đến thông điệp bạn đang nhận được.

Bạn đã mong đợi rằng chỉ gõ $PATHsẽ làm gì?


Tôi đoán sự kỳ vọng $PATHvề cơ bản sẽ in biến lên màn hình mà không cố thực hiện nó, tuy nhiên, đây không phải là trường hợp.
iDrwish

0

Trên Linux, thiết bị đầu cuối đang chờ a command, $ PATH không phải là lệnh, là a variable.

Khi bạn viết echo $PATHbạn đang hỏi nội dung của biến và với lệnh echohiển thị nó trên màn hình.


0

Biến $PATHchứa nhiều thư mục được phân tách bằng dấu hai chấm. Shell đang mong đợi một tệp thực thi hoặc lệnh khác (ví dụ: lệnh tích hợp shell, như cd) làm đầu vào. Các lệnh như lscatchỉ là các tệp thực thi nằm trong một trong các thư mục $ PATH. Nhiều thư mục được nối với nhau bằng dấu hai chấm thường không tạo thành một đường dẫn tệp UNIX thích hợp. Lưu ý: nếu bạn chỉ nhập một trong các thư mục không có dấu hai chấm, thì bạn sẽ nhận được một đầu ra khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.