Bash หรือ sh ไม่สามารถเรียกใช้ไฟล์ไบนารี่ใด ๆ ได้


3

ในขณะที่ฉันสามารถรันไบนารีได้เมื่อเปิดเทอร์มินัลหากฉันพิมพ์:

/bin/bash make

หรือ

/bin/sh ls

ฉันได้รับ: / usr / bin / make: / usr / bin / make: ไม่สามารถดำเนินการไฟล์ไบนารี่ได้

ทำไมถึงเป็นอย่างนั้น? ฉันเปิดอยู่Mavericksและฉันได้ติดตั้งCommand Line ToolsXCode ล่าสุดแล้ว

AppCodeฉันต้องการใช้ทุบตีที่จะดำเนินการให้เพราะผมต้องการที่จะติดตั้งภายนอกสร้างเครื่องมือสำหรับ

ไชโย

คำตอบ:


8

เมื่อคุณโทร/bin/bashด้วยอาร์กิวเมนต์เดียวคุณสามารถเรียกใช้สคริปต์เท่านั้น ไม่ใช่ไบนารี สิ่งนี้ไม่เกี่ยวกับเครื่องมือที่คุณติดตั้ง แต่เป็นเพียงพฤติกรรมที่อธิบายไว้ในหน้า man

/bin/bash -c ls ควรทำสิ่งที่คุณต้องการ


ขอบคุณมาก! ฉันมีคำถามอื่น เมื่อฉันรัน/bin/bashPATH env ไม่ได้ตั้งค่า var มี CLA สำหรับbashเรียกใช้.profileไฟล์ของฉันหรือไม่
Paschalis

@ Paschalis -lอาร์กิวเมนต์จะทำให้เชลล์เป็นเชลล์ "ล็อกอิน" ซึ่งหมายความว่ามันจะรัน.profile/ .bash_profile/ etc ของคุณ
0942v8653

อืมมันไม่ทำงาน แต่ฉันพบวิธีแก้ปัญหาสำหรับกรณีของฉัน! ขอขอบคุณ!
Paschalis

1
@ Paschalis มันใช้งานได้สำหรับฉัน แต่เป็นวิธีทั่วไปมากขึ้น--init-fileตัวเลือกจะช่วยให้คุณสามารถระบุไฟล์ที่จะทำงานเมื่อเริ่มต้น
0942v8653

โปรดทราบว่าถ้าคุณเปิดเทอร์มินัลแสดงว่าคุณกำลังใช้ bash อยู่แล้ว (ยกเว้นกรณีที่คุณเปลี่ยนเชลล์เริ่มต้น) ดังนั้นสิ่งที่คุณต้องทำอย่างไรให้มีการทุบตี LS lsวิ่งเป็นพิมพ์คำสั่ง เมื่อคุณพิมพ์/bin/bash -c lsนั่นจะเป็นการบอกให้ bash รันอินสแตนซ์อื่นของ bash และให้อินสแตนซ์นั้นรัน ls ฉันไม่สามารถคิดเหตุผลที่จะรำคาญกับอินสแตนซ์ทุบตีที่สอง ...
กอร์ดอน Davisson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.