Bash สคริปต์และสคริปต์ปฏิบัติการ

Oct 23 2020

ฉันกำลังพยายามรัน django ร่วมกับ Jupyter ในสภาพแวดล้อมเสมือนจริง รหัสต่อไปนี้ทำให้งานเสร็จ:

source home/sujith/dev/django/bin/activate  && python home/sujith/dev/django/src/manage.py shell_plus --notebook

ฉันบันทึกสคริปต์ไว้django.shในไดเร็กทอรีหลักของฉัน ถ้าฉันเรียกใช้./django.shโน้ตบุ๊กจะปรากฏขึ้น

ฉันพยายามบันทึกสิ่งนี้ใน/binแต่ฉันไม่สามารถเรียกใช้งานได้ ฉันต้องการพิมพ์djangoแทน./django.shในเทอร์มินัลของฉันและให้สคริปต์ด้านบนทำงาน

ฉันจะบรรลุเป้าหมายนี้ได้อย่างไร?

คำตอบ

2 BeastOfCaerbannog Oct 29 2020 at 22:39

ในฐานะที่เป็นponsfrilus กล่าวว่าคุณต้องใช้เส้นทางสัมบูรณ์ (เส้นทางที่เริ่มต้นด้วย/) สำหรับคำสั่งไปยังที่ทำงานจากหรือ/bin /usr/local/binดังนั้นสคริปต์ของคุณควรกลายเป็น:

source /home/sujith/dev/django/bin/activate && python /home/sujith/dev/django/src/manage.py shell_plus --notebook

ในการเรียกใช้djangoคุณต้องบันทึกสคริปต์ของคุณในไฟล์ที่djangoมีชื่อ#/bin/bashอยู่ด้านบนของไฟล์ จากนั้นให้เรียกใช้งานได้โดยเรียกใช้:

chmod u+x /path/to/django

ที่/path/to/djangoเป็นเส้นทางที่แน่นอนที่จะสคริปต์ของคุณ

สุดท้ายย้ายสคริปต์ของคุณไป/binโดยเรียกใช้:

sudo mv /path/to/django /bin

ตอนนี้คุณควรจะสามารถเรียกใช้สคริปต์ของคุณได้เพียงแค่พิมพ์djangoในเทอร์มินัลของคุณ


อีกทางเลือกหนึ่งที่ง่ายกว่ามากคือการสร้างนามแฝงสำหรับสคริปต์ของคุณโดยเพิ่มสิ่งต่อไปนี้ที่ท้าย.bashrcไฟล์ของคุณ:

alias django='source /home/sujith/dev/django/bin/activate && python /home/sujith/dev/django/src/manage.py shell_plus --notebook'

จากนั้นปิดเทอร์มินัลของคุณแล้วเปิดใหม่หรือเรียกใช้สิ่งต่อไปนี้เพื่อให้นามแฝงมีผล:

source .bashrc