เพราะเห็นได้ชัดว่า Mac OS เป็นหนึ่งในระบบที่ตอบสนองต่อxpg_echoตัวเลือกเมื่อทำงานในโหมด POSIX การรัน bash เป็น / bin / sh เทียบเท่ากับการรันด้วย--posixหรือตั้งค่า POSIXLY_CORRECT
ทางออกคือหยุดใช้echoยกเว้นในกรณีที่ไม่มีความกำกวม printfเป็นอุปกรณ์ทดแทนแบบพกพา อย่าใช้ตัวเลือกการตั้งค่าสถานะเพื่อสะท้อน (และใช้printfถ้าคุณ)
มีการใช้งานในอดีตที่เข้ากันไม่ได้หลายอย่างechoซึ่งทำลายข้อกำหนดของมันในลักษณะที่ไม่สามารถแก้ไขได้และธงตัวเลือกจึงไม่สามารถพกพาได้ ฉันไม่ทราบว่ามีสิ่งใดที่ใช้ POSIX echoอย่างถูกต้องในปัจจุบัน
shopt -u xpg_echoควรแก้ไขพฤติกรรมนี้ เช่นเดียวกับที่คุณค้นพบแล้วไม่ได้ทำงานในโหมด POSIX
นอกจากนี้คุณอาจต้องการอัปเกรด ... bash 3 เริ่มมีค่าเล็กน้อย ข้อบกพร่องหลายอย่างได้รับการแก้ไขตั้งแต่