ฉันลองสิ่งนี้
./home/user/scripts/someScript
แต่มันไม่ทำงาน
ไม่พบไฟล์หรือโฟลเดอร์
ความคิดใด ๆ
ฉันลองสิ่งนี้
./home/user/scripts/someScript
แต่มันไม่ทำงาน
ไม่พบไฟล์หรือโฟลเดอร์
ความคิดใด ๆ
คำตอบ:
จุดนำในคำสั่งของคุณหมายถึง "สัมพันธ์กับไดเรกทอรีปัจจุบัน" ลบออกและมันจะอ้างถึง "ไฟล์someScript
ในไดเรกทอรี/home/user/scripts
:
/home/user/scripts/someScript
หากคุณได้รับ "สิทธิ์การใช้งานถูกปฏิเสธ" อาจเป็นเพราะคุณไม่มีสิทธิ์เพียงพอในการเข้าถึงไฟล์ในไดเรกทอรีของผู้ใช้รายอื่นหรือเนื่องจากไฟล์นั้นไม่สามารถเรียกใช้งานได้ เพื่อให้สามารถเรียกใช้งานได้ให้เรียกใช้:
chmod +x /home/user/scripts/someScript
หากสคริปต์ของคุณต้องการเข้าถึงทรัพยากรในโฟลเดอร์เดียวกับที่เรียกใช้และคุณระบุว่าเป็นเส้นทางที่สัมพันธ์กันสคริปต์ของคุณจะหยุดทำงาน
ฉันเพิ่ม a cd $(dirname $0)
ไว้ที่ส่วนหัวของสคริปต์เสมอดังนั้นโฟลเดอร์ที่มีสคริปต์จะเป็นโฟลเดอร์รูท
ลบ .
หากคุณทำให้chmod 755 <nameofscript>
สคริปต์เรียกทำงานด้วยเพื่อรันคุณต้องพิมพ์พา ธ ไปยังสคริปต์เท่านั้น
เมื่อคุณเห็น./script
การใช้งานมันจะบอกเชลล์ว่าสคริปต์นั้นอยู่ในไดเรกทอรีเดียวกันกับที่คุณกำลังเรียกใช้งาน sh /home/user/scripts/someScript
ที่จะใช้เส้นทางแบบเต็มคุณพิมพ์
sh /path/to/file
/path/to/file
จะแตกต่างจาก sh
วิ่ง/bin/sh
ซึ่งเป็น symlinked /bin/dash
ไป
sh ./somescript
ว่าสามารถพิมพ์อะไรได้บ้างเช่น `sh / path / to / script / scriptitself '