คุณละเว้น“ ./” อย่างไรเมื่อเรียกใช้สคริปต์ในไดเรกทอรีปัจจุบัน


10

ในบทเรียนบางอย่างผ่านทางอินเทอร์เน็ตพวกเขาสามารถเรียกใช้สคริปต์ในไดเรกทอรีปัจจุบันโดยไม่ต้องทำ:

./script

คุณจะละเว้นสิ่งนี้ได้อย่างไร ฉันใช้ CentOS 5.6 x64 ฉันต้องการเรียกใช้วิธีนี้

script


3
โปรดทราบว่านี่เป็นความคิดที่ไม่ดีโดยเฉพาะอย่างยิ่งสำหรับผู้ใช้รูท
David Schwartz

1
อะไรคือวัตถุประสงค์ / เรื่องราวเบื้องหลังของ. /
Pete

ฉันแค่อยากรู้ว่าทำไมต้องมีเสมอ. /
Aivan Monceller

ความคิดเห็นสุดท้ายอาจเป็นคำถามแยกต่างหาก IMHO - เป็นสิ่งสำคัญที่ต้องเข้าใจเกี่ยวกับการใช้งานโปรแกรมโดยทั่วไป!
rozcietrzewiacz

4
@Pete (และ Aivan): ใน Linux / UNIX เชลล์จะรันโปรแกรมเฉพาะเมื่อมันรู้เส้นทางไปยังพวกมัน (ไม่ว่าจะโดยใช้พา ธ ที่คุณระบุหรือโดยการค้นหาตัวแปร PATH) ไม่คิดว่าคุณต้องการค้นหาไดเรกทอรีปัจจุบันเช่นเดียวกับ Windows มันค้นหาสิ่งที่คุณขอให้ค้นหาผ่านตัวแปร PATH '' เป็นการอ้างอิงไปยังไดเรกทอรีปัจจุบัน ดังนั้นเมื่อคุณพิมพ์ './script.sh' คุณจะบอกเส้นทาง
Kasius

คำตอบ:


26

อันใดอันหนึ่ง:

  1. เพิ่มไดเรกทอรีการทำงานปัจจุบันลงใน PATH ของคุณ: PATH=${PATH}:.(นี่ถือว่าเป็นความเสี่ยงด้านความปลอดภัย)
  2. เพิ่มเส้นทางที่มีสคริปต์ของคุณลงในตัวแปรเส้นทางอย่างชัดเจน (นี่ไม่ใช่ความเสี่ยงด้านความปลอดภัยหากการเข้าถึงเพื่อเขียนไปยังไดเรกทอรีนั้นถูก จำกัด )
  3. วางสคริปต์ของคุณในตำแหน่งที่เหมาะสมที่ PATH ชี้ไปที่ (~ / bin, / usr / local / bin, ... )

ตัวเลือกสุดท้ายน่าจะดีที่สุด

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