เวิร์กสเตชันออนไลน์ของ OnWorks Linux และ Windows

โลโก้

ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | เนื้อหา | ถัดไป>

ตำแหน่งไฟล์สคริปต์

ด้วยการตั้งค่าการอนุญาต ตอนนี้เราสามารถรันสคริปต์ของเราได้:



[me@linuxbox ~]$ ./สวัสดีชาวโลก

สวัสดีชาวโลก!

[me@linuxbox ~]$ ./สวัสดีชาวโลก

สวัสดีชาวโลก!


เพื่อให้สคริปต์ทำงาน เราต้องนำหน้าชื่อสคริปต์ด้วยเส้นทางที่ชัดเจน หากไม่เป็นเช่นนั้น เราจะได้สิ่งนี้:



[me@linuxbox ~]$ สวัสดีชาวโลก

bash: hello_world: ไม่พบคำสั่ง

[me@linuxbox ~]$ สวัสดีชาวโลก

bash: hello_world: ไม่พบคำสั่ง


ทำไมถึงเป็นเช่นนี้? อะไรทำให้สคริปต์ของเราแตกต่างจากโปรแกรมอื่น ปรากฏว่าไม่มีอะไร สคริปต์ของเราดี ตำแหน่งของมันคือปัญหา ย้อนกลับไปในบทที่ 11 เราได้พูดถึง เส้นทาง ตัวแปรสภาพแวดล้อมและผลกระทบต่อวิธีที่ระบบค้นหาโปรแกรมปฏิบัติการ เพื่อสรุป ระบบจะค้นหารายการไดเร็กทอรีทุกครั้งที่จำเป็นต้องค้นหาโปรแกรมปฏิบัติการ หากไม่มีการระบุพาธที่ชัดเจน นี่คือวิธีที่ระบบรู้วิธีดำเนินการ

/bin/ls เมื่อเราพิมพ์ ls ที่บรรทัดคำสั่ง ไดเร็กทอรี /bin เป็นหนึ่งในไดเร็กทอรีที่ระบบค้นหาโดยอัตโนมัติ รายการไดเร็กทอรีถูกเก็บไว้ในตัวแปรสภาพแวดล้อมชื่อ PATH ตัวแปร PATH มีรายการไดเร็กทอรีที่คั่นด้วยเครื่องหมายทวิภาคที่จะค้นหา เราสามารถดูเนื้อหาของ PATH:

ตำแหน่งไฟล์สคริปต์


[me@linuxbox ~]$ เสียงสะท้อน $PATH

/home/me/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:

/bin:/usr/เกม

[me@linuxbox ~]$ เสียงสะท้อน $PATH

/home/me/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:

/bin:/usr/เกม


ที่นี่เราเห็นรายชื่อไดเร็กทอรีของเรา หากสคริปต์ของเราอยู่ในไดเร็กทอรีใด ๆ ในรายการ ปัญหาของเราจะได้รับการแก้ไข สังเกตไดเร็กทอรีแรกในรายการ

/home/me/bin. ลีนุกซ์รุ่นส่วนใหญ่กำหนดค่าตัวแปร PATH ให้มีไดเร็กทอรี bin ในไดเร็กทอรีโฮมของผู้ใช้, เพื่อให้ผู้ใช้สามารถรันโปรแกรมของตนเองได้ ดังนั้น หากเราสร้างไดเร็กทอรี bin และวางสคริปต์ของเราไว้ภายใน ไดเร็กทอรีควรจะเริ่มทำงานเหมือนกับโปรแกรมอื่นๆ:



[me@linuxbox ~]$ mkdir บิน [me@linuxbox ~]$ mv hello_world บิน [me@linuxbox ~]$ สวัสดีชาวโลก

สวัสดีชาวโลก!

[me@linuxbox ~]$ mkdir บิน [me@linuxbox ~]$ mv hello_world บิน [me@linuxbox ~]$ สวัสดีชาวโลก

สวัสดีชาวโลก!


และมันก็เป็นเช่นนั้น

ถ้า เส้นทาง ตัวแปรไม่มีไดเร็กทอรี เราสามารถเพิ่มไดเร็กทอรีได้โดยการรวมบรรทัดนี้ในของเรา .bashrc ไฟล์:


เส้นทางการส่งออก=~/bin:"$เส้นทาง"

เส้นทางการส่งออก=~/bin:"$เส้นทาง"


หลังจากทำการเปลี่ยนแปลงแล้ว จะมีผลในเทอร์มินัลเซสชันใหม่แต่ละเซสชัน เพื่อนำการเปลี่ยนแปลงไปใช้กับเทอร์มินัลเซสชันปัจจุบัน เราต้องให้เชลล์อ่านค่า . อีกครั้ง .bashrc ไฟล์. ซึ่งสามารถทำได้โดย "การจัดหา" มัน:



[me@linuxbox ~]$ - .bashrc

[me@linuxbox ~]$ - .bashrc


จุด (.) คำสั่งเป็นคำพ้องความหมายสำหรับ แหล่ง คำสั่ง เชลล์บิวด์อินซึ่งอ่านไฟล์ที่ระบุของคำสั่งเชลล์และถือว่าคำสั่งนั้นเหมือนกับอินพุตจากแป้นพิมพ์


ภาพ

หมายเหตุ: Ubuntu (และการแจกแจงแบบเดเบียนอื่น ๆ ส่วนใหญ่) จะเพิ่ม .โดยอัตโนมัติ

~/bin ไดเร็กทอรีไปยังตัวแปร PATH ถ้าไดเร็กทอรี ~/bin มีอยู่เมื่อไฟล์ .bashrc ของผู้ใช้ถูกเรียกใช้งาน ดังนั้น บนระบบ Ubuntu หากเราสร้างไดเร็กทอรี ~/bin จากนั้นออกจากระบบและเข้าสู่ระบบอีกครั้ง ทุกอย่างก็ใช้งานได้


ภาพ


 

ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: