เหตุใดฉันต้องพิมพ์. / เมื่อเรียกใช้งานสคริปต์ในไดเรกทอรีปัจจุบันของฉัน [ซ้ำ]


0

สำเนาซ้ำที่เป็นไปได้:
เพราะเหตุใด ไม่ได้อยู่ในเส้นทางโดยค่าเริ่มต้น?

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

./my_script.sh

เมื่อใดก็ตามที่ฉันพิมพ์โดยไม่มีจุด & เครื่องหมายทับ:

my_script.sh

ฉันเพิ่งได้รับ-bash: cloud_sync.sh: ไม่พบคำสั่ง

อะไรคือสาเหตุของการวาง. /ไว้หน้าชื่อสคริปต์

ขอบคุณ


ฉันมางานปาร์ตี้ แต่คุณสามารถ symlink ( ln -s /path/to/orig.sh / usr / bin / orig ) ไปยังโฟลเดอร์ / usr / bin ของคุณจากไดเรกทอรีสคริปต์ของคุณ (/ usr / bin อยู่ในของคุณ $ PATH) จากนั้นคุณสามารถพิมพ์ my_script (แม้กระทั่ง tab-complete)
nerdwaller

คำตอบ:


1

คุณต้องมีไดเรกทอรีปัจจุบันใน PATH ของคุณ export PATH=${PATH}:.


2
โปรดทราบว่าการมีไดเรกทอรีปัจจุบันของคุณในเส้นทางของคุณถือว่าเป็นความเสี่ยงด้านความปลอดภัย มีเหตุผลที่ดีที่นี่ไม่ใช่ค่าเริ่มต้นสำหรับระบบที่มีผู้ใช้หลายคน
Hennes

วิธีที่ดีกว่าที่เราจะใส่สคริปต์ผู้ใช้ไปที่ ~ / bin และเพิ่มสิ่งนี้ลงในตัวแปร PATH ของคุณ
l1zard

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