ฉันจะเพิ่มไดเรคทอรี่ที่เต็มไปด้วย Bash Scripts ลงใน Path Variable ได้อย่างไรและรันมันจาก oustide ของไดเร็คทอรี


0

การมีปัญหาเล็ก ๆ น้อย ๆ ใครบางคนอาจช่วยฉันด้วย ฉันได้สร้างสคริปต์ Bash จำนวนหนึ่งสำหรับการทำงานประจำวันของฉันบนเครื่อง Snow Lepoard ของฉันโดยอัตโนมัติ สคริปต์ทั้งหมดเหล่านี้อาศัยอยู่ในโฟลเดอร์ DropBox ที่แชร์ในเครื่องของฉัน

เส้นทางนั้นเหมือนกันในทุกเครื่อง: เช่น /User/myuser/Drobox/Bash\ and\ Batch/ ฉันได้เพิ่มโฟลเดอร์ใน / etc / path ของฉัน

เส้นทางตัวแปร:

/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/myuser/Dropbox/Bash\ and\ Batch:/usr/local/git/bin:/usr/X11/bin

ปัญหาของฉันไม่สามารถเรียกใช้สคริปต์จากนอกไดเรกทอรีได้ สคริปต์ทั้งหมดมีสิทธิ์ที่จำเป็นเช่น: 755

สคริปต์สามารถเรียกใช้เมื่ออยู่ในไดเรกทอรี:

mymachine:~ myuser$ cd Dropbox/Bash\ and\ Batch
mymachine:Bash and Batch myuser$ ./uni-update.sh
Update University Repository
At revision 246.

แต่ไม่ใช่จากนอกไดเรกทอรี:

mymachine:~ myuser$ ./uni-update.sh
-bash: uni-update.sh: command not found

สิ่งที่ฉันหายไปที่นี่?

ขอบคุณล่วงหน้า.

คำตอบ:


4

คุณต้องไม่นำหน้าคำสั่งด้วย ./.

มันหมายถึง "ใช้ uni-update.sh ในไดเรกทอรีปัจจุบัน" คุณทำสิ่งนี้สำหรับคำสั่งที่ไม่พบบนพา ธ หรือเพื่อระบุเวอร์ชันอื่นหรือโปรแกรมอื่นที่มีชื่อแตกต่างกันโดยสิ้นเชิง

เรียกใช้เพียงแค่เป็น uni-update.sh และคุณก็ทำได้ดี


พยายามแล้ว .. ไม่มีโชค .. ยังได้รับข้อผิดพลาดเดียวกัน: -bash: uni-update.sh: ไม่พบคำสั่ง
Jeremy Cade

1
@Jeremy ลองลบเครื่องหมายทับขวาออกจากช่องว่างใน /etc/paths. หากไม่ได้ผลก็คือผลลัพธ์ echo $PATH ; which uni-update.sh ; find ~ -type f -name uni-update.sh ; ls -l /Users/myuser/Dropbox/Bash\ and\ Batch/uni-update.sh?
Daniel Beck

mymachine: ~ myuser $ echo $ PATH; ซึ่ง uni-update.sh; ค้นหา ~ -type f -name uni-update.sh; ls -l / Users / myuser / Dropbox / Bash \ และ \ Batch / uni-update.sh /Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/usr/sbin:/ sbin: / usr / local / bin: / Users / myuser / Dropbox / Bash \ และ \ Batch: / usr / local / git / bin: / usr / X11 / bin / Users / myuser / Dropbox / Bash และ Batch / uni- update.sh -rwxr-xr-x @ 1 พนักงาน myuser 101 24 มี.ค. 20:29 / ผู้ใช้ / myuser / Dropbox / Bash และแบทช์ / uni-update.sh
Jeremy Cade

@Jeremy ดูดีมากยกเว้นว่าจะไม่รู้จักรายการ PATH คุณลองลบแบ็กสแลชแล้วหรือยัง /Users/myuser/Drobox/Bash\ and\ Batch/ตามที่ฉันแนะนำ
Daniel Beck

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