Bad Interpreter unter Mac OS X

Wenn man unter Mac OS X ein sh-Skript ausführen möchte und dabei die Meldung:

/bin/sh^M: bad interpreter: No such file or directory

bekommt, kann das Skript nicht ausgeführt werden. Das Problem liegt daran das versucht wird den Interpreter „bin/sh^M“ anstatt „bin/sh“ zu starten. Bei dem ^M handelt es sich um das dreizehnte ASCII-Zeichen, das Carriage Return (im deutschen auch Wagenrücklauf genannt). Um das Problem zu beheben muss das entsprechende Skript einfach um das Carriage Return Zeichen bereinigt werden. Dies kann im Terminal einfach mittels:

perl -i -pe 'y|\r||d' script.sh

bewerkstelligt werden. Anschließend sollte das Skript ohne weitere Probleme durchlaufen.