จะรับมือกับพื้นที่เมื่อตั้งค่า $ PATH อย่างไร


16

ฉันต้องการเพิ่ม lib ประเสริฐในเส้นทางของฉัน แต่มันมีช่องว่างในนั้น

ฉันลองอย่างชัดเจนเหมือนที่คุณนำทางในเทอร์มินัล (เช่น/Applications/Sublime\ Text\ 2.app/Contents)

export PATH="/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl:$PATH"

แต่ฉันยังคงได้รับข้อผิดพลาด

/Applications/Sublime: No such file or directory

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


ลองexport PATH='/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH? ขึ้นบรรทัดใหม่นั้นไว้ด้วยหรือไม่
เอียงอาย

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

1
คำแนะนำของ demure ควรทำ แต่ใช้เครื่องหมายคำพูดคู่: export PATH="/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH"มิฉะนั้น $ PATH จะไม่ขยาย
jaume

ฉันมีมันเป็นคำพูดสองครั้ง แต่ใน. bashrc มันยังคงไม่ชอบมัน
Shawn Vader

คุณจะแม่นยำมากขึ้น? คุณหมายความว่าอย่างไร "ไม่ชอบ" คุณได้รับข้อผิดพลาด (อันไหน)? หรือมันไม่ทำงาน
jaume

คำตอบ:


15

ใช้เครื่องหมายทับขวาหรือเครื่องหมายคำพูดไม่ใช่ทั้งสองอย่าง คุณใส่ลำดับ backslash-space ในPATHค่า

export PATH="/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH"

หรือ

export PATH=/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl:$PATH

อย่าปิดล้อมบรรทัด: ต้องเป็นช่องว่างไม่ใช่ขึ้นบรรทัดใหม่

โปรดทราบว่าหากคุณเห็นข้อผิดพลาดเช่น/Applications/Sublime: No such file or directoryจากexport PATH=…บรรทัดแสดงว่าคุณมีข้อผิดพลาดทางไวยากรณ์ในบรรทัดนั้นเช่นช่องว่างหลังเครื่องหมายเท่ากับ: การกำหนดจะไม่พยายามค้นหาไดเรกทอรี หากเกิดข้อผิดพลาดในเวลาต่อมาแสดงว่ามันไม่ได้เกิดจากค่า PATH หรือหากเป็นเพียงในทางอ้อม: มันสมบูรณ์แบบสำหรับรายการที่$PATHไม่มีอยู่และไดเรกทอรีที่ไม่มีอยู่จะไม่นำไปสู่ข้อความแสดงข้อผิดพลาด .


4

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

ตัวอย่างเช่นหาก.bash_profileตั้งไว้ด้านล่าง:

export SUBLIMEPATH="/Applications/Sublime Text 2.app/Contents"
export PATH=$PATH:$SUBLIMEPATH/SharedSupport/bin/subl

คุณไม่สามารถทำcd $SUBLIMEPATHเพื่อเปลี่ยนไดเรกทอรีปัจจุบันคุณจะได้รับNo such file or directoryข้อผิดพลาด แต่ด้วยเครื่องหมายคำพูดคู่เช่นcd "$SUBLIMEPATH"คุณสามารถ

หวังว่านี่จะช่วยคุณได้


3

เพื่อแก้ไขมันฉันทำ simlink มา

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /usr/local/sublime/bin/subl

ฉันเพิ่มมันลงในพา ธ ของฉันโดยใช้ vi บน ~. / bashrc

export PATH="/usr/local/sublime/bin/:$PATH"

อย่าลืมแหล่ง. bashrc เพื่อรับการเปลี่ยนแปลงของคุณ

source ~/.bashrc

1

สิ่งนี้ไม่ตอบคำถาม อย่างไรก็ตามมันพูดถึงคำพูดในหนึ่งในคำตอบและกล่าวถึงกระบวนการที่คล้ายกัน

นอกจากนี้ยังเป็นไปได้ที่จะสร้างนามแฝงสำหรับ Sublime Text โดยการแก้ไข.bash_profileหรือ.bashrc(ใดก็ตามที่เป็นไฟล์การกำหนดค่า BASH ในไดเรกทอรีบ้านของคุณ)

alias sublime="/Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text"

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

โปรดทราบว่าไม่จำเป็นต้องสร้าง symlink ก่อนเนื่องจากเอกสาร Sublime อย่างเป็นทางการและการอ้างสิทธิ์แหล่งข้อมูลอื่น ๆ คำตอบใน StackOverflow ทำให้ถูกต้อง

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