ฉันจะทำให้สคริปต์ทำงานได้ทั่วโลกใน Ubuntu


0

ฉันมีสคริปต์ทุบตีซึ่งฉันต้องการที่จะรันจากทุกที่ (เช่นคำสั่งพื้นฐาน Linux อื่น ๆ เช่น ls ) ฉันพยายามติดตามสิ่งนี้ เกี่ยวกับการสอน แต่มันไม่ได้ผลฉันมักจะได้รับ command not found.

ก็จะดีถ้ามีวิธีการรันสคริปต์ Python โดยตรงด้วยวิธีนี้ปัจจุบันฉันมีไฟล์. py กับสคริปต์แล้ว file. sh ซึ่งเรียก python /path/to/it.

คำตอบ:


2

หากคุณเขียนสคริปต์ไพ ธ อนที่คุณสามารถดำเนินการได้อย่างน้อยสามวิธีต่อไปนี้:

1 เริ่มต้นหลามด้วยสคริปต์เป็นอาร์กิวเมนต์

ตัวอย่าง: /usr/local/bin/python-2.5 myscript.py

2 เริ่มต้นสคริปต์ด้วยล่าม shebang

ซึ่งหมายความว่าบรรทัดแรกเริ่มต้นด้วย #! (เรียกอีกอย่างว่า Shebang) ตามด้วยช่องว่าง (หรือที่มักจะไม่!

ตัวอย่าง:

#!/usr/local/bin/python-2.5
#
# My test script!
#
Do something

สังเกตเห็นว่าฉันเพิ่มความคิดเห็น หลังจาก บรรทัดแรก อย่าเพิ่มพวกเขาด้านบนตั้งแต่นั้นบรรทัดแรกจะไม่เริ่มต้นด้วย shebang

3 เริ่มต้นสคริปต์ด้วย #!/usr/bin/env python

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

นี่คือทางออกที่ต้องการ


มีมากสำหรับส่วนที่คุณใช้สคริปต์ sh เพื่อเรียก python / path / to / it ตอนนี้คุณจะข้ามส่วนนั้นไปได้อย่างไร

ส่วนที่สองของคำถามของคุณดูเหมือนว่าไม่พบสคริปต์ของคุณ หากต้องการค้นหาสคริปต์หรือโปรแกรมคุณต้องระบุเส้นทางแบบเต็ม (เช่น / usr / local / bin / myscript.py` หรือต้องอยู่ในพา ธ

คุณสามารถตรวจสอบว่าเส้นทางปัจจุบันของคุณถูกตั้งค่าด้วย echo $PATH.

อาจรวมถึง / usr / local / bin / ซึ่งหมายความว่าจะพบโปรแกรมหรือสคริปต์ใด ๆ ในไดเรกทอรี / usr / local / bin / หากไม่ได้เพิ่มพา ธ นั้นไปยังค่าเริ่มต้นทั้งระบบ (หมายเหตุ: เริ่มต้นเปลือกเข้าสู่ระบบเพื่อทดสอบสิ่งนี้หลังจากการเปลี่ยนแปลงนี้การเปลี่ยนไฟล์ config โดยไม่ต้องเริ่มเชลล์ใหม่จะไม่สะท้อนการเปลี่ยนแปลง)

สุดท้ายฉันข้ามส่วนที่คุณต้องการให้สคริปต์ทำงานได้ คุณมีสิ่งนั้นอยู่ในบทช่วยสอนที่คุณเชื่อมโยงคุณ

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