ดู: รายการคำถามที่พบบ่อย BASH # 28: "ฉันจะกำหนดตำแหน่งของสคริปต์ของฉันได้อย่างไรฉันต้องการอ่านไฟล์กำหนดค่าบางไฟล์จากที่เดียวกัน"
วิธีแก้ปัญหาใด ๆ จะไม่ทำงาน 100% ของเวลา:
สิ่งสำคัญคือต้องตระหนักว่าในกรณีทั่วไปปัญหานี้ไม่มีทางแก้ไข แนวทางใด ๆ ที่คุณอาจเคยได้ยินและแนวทางใด ๆ ที่จะมีรายละเอียดด้านล่างนี้มีข้อบกพร่องและจะใช้ได้ผลในบางกรณีเท่านั้น ก่อนอื่นพยายามหลีกเลี่ยงปัญหาทั้งหมดโดยไม่ขึ้นอยู่กับตำแหน่งของสคริปต์ของคุณ!
หากคุณจำเป็นต้องเขียนมากเครื่องมือที่นำมาใช้ใหม่แล้วการเส้นทางที่ถูกต้องเป็นพารามิเตอร์สคริปต์ของคุณจะเป็นวิธีการที่น่าเชื่อถือที่สุด
สมมติว่าสคริปต์ของคุณจะถูกเรียกใช้จากเปลือกหอยบางตัวเท่านั้นและต้องใช้ความยืดหยุ่นเพียงเล็กน้อยคุณก็สามารถผ่อนคลายความหวาดระแวงนี้ได้บ้าง ยังดีที่จะดูตัวเลือกของคุณ มีรูปแบบทั่วไปที่ผู้คนใช้ซึ่งเป็นปัญหาโดยเฉพาะ
โดยเฉพาะคำถามที่พบบ่อยแนะนำให้หลีกเลี่ยง$0
ตัวแปรที่ใช้บ่อยมาก:
ไม่มีสิ่งใดที่อ่านแล้ว$0
จะสามารถกันกระสุนได้เพราะ$0
ตัวมันเองไม่น่าเชื่อถือ
คุณสามารถใช้$BASH_SOURCE
แทนได้อีกทางหนึ่ง สิ่งนี้:
source "${BASH_SOURCE%/*}/act.conf.sh"
มีข้อแม้บางประการสำหรับการแก้ปัญหานี้เช่นกัน ดูหน้าคำถามที่พบบ่อยเพื่อดูการแลกเปลี่ยนระหว่างโซลูชันต่างๆ ดูเหมือนว่าจะแนะนำcd
ร่วมกับ$BASH_SOURCE
ในกรณีที่จะได้ผลสำหรับคุณเนื่องจากคุณได้รับเงื่อนไขข้อผิดพลาดที่สะดวกเมื่อขยายไม่ถูกต้อง
readlink
ขอบคุณผมจะใช้ ไม่สามารถระบุคีย์เวิร์ดที่จะค้นหาได้จึงโพสต์คำถามไว้ที่นี่ ....