ไม่มีไฟล์หรือไดเรกทอรีดังกล่าวหลังจากพิมพ์ $ PATH ในเทอร์มินัล


13

เมื่อฉันเขียนใน terminal

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 อยู่

คำตอบ:


20

$PATHเป็นตัวแปรซึ่งฉันแน่ใจว่าคุณรู้ เมื่อตัวแปรนั้นได้รับการแก้ไขมันจะเหมือนกับการพิมพ์:/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin:และคาดว่าจะมีบางอย่างเกิดขึ้น เหตุผลที่echo $PATHการทำงานเป็นเพราะคุณกำลังท่ออย่างชัดเจนมันออกไปแสดงแทนที่จะบอกขั้ว $PATH"ทำ"


2

ในกรณีที่คุณยังไม่ได้รับจากคำตอบอื่น ๆ ก็เป็นเช่นนี้:

$ 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

คำแรกของบรรทัดคำสั่งทุกจะต้องมีคำสั่ง  echoเป็นคำสั่งดังกล่าว  the, and/orและ:/home/bo/bin:/usr/local/bin:/usr/sbin…ไม่ใช่ และเมื่อคุณพิมพ์บรรทัดคำสั่งที่ขึ้นต้นด้วยคำที่ไม่ใช่คำสั่ง bash จะบอกว่าNo such file or directoryคำนั้นมี/อักขระหนึ่งตัวขึ้นไปหรือไม่และcommand not foundถ้าไม่มี


1

โดยการพิมพ์

$ PATH

คุณไม่ได้ทำอะไรนอกจากขยายเนื้อหาที่บรรทัดคำสั่ง:

: / home / บ่อ / bin: / usr / local / bin: / usr / sbin: / usr / local / sbin: / usr / bin: / sbin: / bin

และนี่ไม่ใช่คำสั่งที่ถูกต้องซึ่งนำไปสู่ข้อความที่คุณได้รับอย่างถูกกฎหมาย

คุณคาดหวังว่าการพิมพ์เฉพาะ$PATHจะทำอย่างไร


ฉันเดาว่าความคาดหวังที่$PATHเป็นหลักจะพิมพ์ตัวแปรไปที่หน้าจอโดยไม่ต้องพยายามเรียกใช้งานอย่างไรก็ตามนี่ไม่ใช่กรณี
iDrwish

0

บน Linux ขั้วกำลังรอcommand, $ PATH variableไม่ได้เป็นคำสั่งเป็น

เมื่อคุณเขียนecho $PATHคุณจะถามเนื้อหาของตัวแปรและด้วยคำสั่งที่echoแสดงบนหน้าจอ


0

ตัวแปร$PATHมีหลายไดเร็กทอรีคั่นด้วยโคลอน เชลล์คาดว่าไฟล์เรียกทำงานหรือคำสั่งอื่น ๆ (เช่นคำสั่งในตัวเชลล์เช่นcd) เป็นอินพุต คำสั่งเช่นlsและcatเป็นเพียง executables ที่อยู่ในหนึ่งในไดเรกทอรี $ PATH หลายไดเรกทอรีถูกโยงโซ่เข้าด้วยกันโดย colons โดยทั่วไปจะไม่สร้างพา ธ ไฟล์ UNIX ที่เหมาะสม หมายเหตุ: หากคุณป้อนเพียงหนึ่งในไดเรกทอรีที่ไม่มีเครื่องหมายจุดคู่คุณจะได้ผลลัพธ์ที่ต่างออกไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.