Als ik een zelfgemaakt bash-script op de Raspberry Pi probeer uit te voeren, krijg ik steeds een vreemde foutmelding: ‘/bin/bash^M: bad interpreter: No such file or directory’. Ik heb het script expres gemaakt in Notepad++ en niet met de tekstverwerker, omdat ik dacht dat het dan wel een echt tekstbestand zou worden, dat ik zo onder Raspbian kan gebruiken. Wat doe ik verkeerd?
Deze foutmelding geeft aan dat het script Windows-regeleindes bevat. Daar kan bash niets mee. In Notepad++ kun je er makkelijk voor zorgen dat het programma niet de regeleindes (CR/LF) van Windows gebruikt, maar die van Unix (LF).
Simpel te fixen
Klik onderaan op de statusbalk van Notepad++ met de rechtermuisknop op ‘Windows (CR LF)’ en kies in het menuutje voor ‘Unix-indeling’ zodat er in de statusbalk ‘Unix (LF)’ komt te staan. Als je het script nu opslaat en onder Raspbian uitvoert, werkt het wel goed. Je kunt natuurlijk ook je bash-scripts direct in Raspbian maken met de teksteditors nano of vi. Dan heb je sowieso geen probleem.
Onder raspbian kun je ook de utility dos2unix installeren. Dan ben je ook van deze foutmelding af.
sudo apt-get install dos2unix