Perché apparentemente Mac OS è uno dei sistemi che risponde all'opzione xpg_echo quando viene eseguita in modalità POSIX. Eseguire bash come / bin / sh equivale all'esecuzione con --posix o con l'impostazione POSIXLY_CORRECT.
La soluzione è di smettere di usare echo tranne nei casi in cui non ci può essere ambiguità. printf è la sostituzione portatile. Non utilizzare mai i flag di opzione da echo, (e usa printf se lo fai).
Esistono più implementazioni storiche incompatibili di echo che interrompono la sua specifica in un modo che non può essere corretto e pertanto le flag di opzione non sono portabili. Non sono a conoscenza di qualcosa che attualmente implementa correttamente POSIX echo .
shopt -u xpg_echo dovrebbe modificare questo comportamento. Inoltre, come hai già scoperto, non in esecuzione in modalità POSIX.
Potresti anche voler aggiornare ... bash 3 sta diventando un po 'croccante. Molti bug sono stati corretti da allora.