ฉันลองสิ่งนี้
./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 '