Come risolvere /bin/bash^M: bad interpreter
/bin/bash^M: bad interpreter: No such file or directory
COME ROVINARSI LA MATTINATA
Vi svegliate una bella mattina, avviate il vostro terminale Linux ed eseguite il vostro script… a rompervi le uova nel paniere c’è questo strano messaggio:
/bin/bash^M: bad interpreter: No such file or directory
Sostanzialmente il messaggio di errore sostiene che non esiste alcun file dal nome /bin/bash^M . Ok, ma nello script non c’è nessun ^M!
^M è un carattere utilizzato da Windows per contrassegnare la fine di una riga (quindi è un ritorno a capo) e che corrisponde al carattere CR. In buona sostanza ci troviamo di fronte ad una terminazione di linea usata da Windows in uno script Linux, ovvio che questo si confonde.
Questo succede spesso quando si fa un copia&incolla da Windows in una finestra SSH (es. quando ci si collega da Windows al proprio Raspberry Pi).
Per rimuovere i caratteri spuri CR sarà sufficiente eseguire il comando:
sed -i -e ‘s/\r$//’ nomefile.sh

