“ ไม่พบคำสั่ง” เมื่อรันเชลล์สคริปต์ ฉันทำอะไรผิด


8

ฉันใช้ OSX Snow Leopard แล้ว

นี่คือเนื้อหาทั้งหมดของgrr.sh:

#!/bin/sh

echo wow

เมื่อฉันพยายามเรียกใช้จาก terminal:

$ grr.sh
-bash: grr.sh: command not found
$ /bin/sh grr.sh
wow
$ sh grr.sh
wow
$ bash grr.sh
wow

ตกลง. ยุติธรรมพอสมควร ฉันจะให้สิทธิ์อนุญาตปฏิบัติการจากนั้นลองอีกครั้ง:

$ chmod +x grr.sh
$ grr.sh
-bash: grr.sh: command not found
$ chmod 755 grr.sh
$ grr.sh
-bash: grr.sh: command not found

อืมม บางทีมันจะใช้ได้ถ้าฉันใช้ bash อย่างชัดเจน? ฉันจะเปลี่ยนเนื้อหาของไฟล์เป็น:

#!/bin/bash

echo wow

และฉันก็ได้ผลลัพธ์เดียวกัน ฉันจะหักอะไรได้!

สิ่งสุดท้าย! ในกรณีที่คุณอยากรู้ ...

$ which sh
/bin/sh

คำตอบ:


19

ไม่มีอะไรจริงๆ. ไฟล์ที่เรียกทำงานได้ในไดเรกทอรีใดไดเรกทอรีหนึ่งเท่านั้นที่$PATHสามารถเรียกใช้โดยตรงและ.ไม่เคยมีมา$PATHก่อน ./grr.shระบุเส้นทางไปยังปฏิบัติการคือ


3
+1 นอกจากนี้ยังทราบไดเรกทอรีปัจจุบันอยู่บนเส้นทางบนระบบ Windows โดยค่าเริ่มต้นและเป็นลำดับความสำคัญสูงสุด ความแตกต่างที่สำคัญนี้อาจเป็นสาเหตุของความสับสนของผู้ถาม
afrazier

คุณเป็นคนแรกโดย 9 วินาที! ขอบคุณ!
ปิด Cowboy

คุณประหยัด macbook ของฉัน
vietnguyen09

8

เป็นที่ตั้งของ grr.sh ใน$PATHตัวแปรหรือไม่ หากไม่ใช่คุณจะต้องป้อน:

./grr.sh

ถ้าคุณอยู่ในโฟลเดอร์เดียวกันกับ grr.sh ถ้าไม่เช่นนั้นให้เส้นทางเต็มไป



0

ใช่และ. .grr.sh หมายถึงอะไรในไดเรกทอรีนี้ให้เรียกใช้คำสั่ง grr.sh ตัวเดียว หมายถึงในไดเรกทอรีการทำงาน มิฉะนั้นเชลล์ของคุณจะถือว่าคุณพยายามรันคำสั่งใน $ PATH

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