/bin/bash^M: bad interpreter
En el caso que intentemos ejecutar un fichero y nos indique el error “bad interpreter” tendremos que revisar el shebang
El shebang es la primera linea de un fichero con la amuadilla y una admiración (#!) que indica al sistema que interprete debe utilizar para leer las instrucciones que vienen a continuación.
Así, en el caso que tengamos:
#!/bin/bash
Las instrucciones del script serán interpretadas por bash, por el contrario, si nos encontramos con:
#!/usr/bin/perl
El sistema escogerá /usr/bin/perl como interprete.
Además, podemos usar el shebang para pasar opciones al interprete, por ejemplo con:
#!/usr/bin/perl -w
En este caso habilitaremos los warnings del interprete de perl.
Para el caso siguiente del “bad interpreter“:
# ./parser.sh -bash: ./parser.sh: /bin/bash^M: bad interpreter: No such file or directory
Debemos fijarnos que nos indica “/bin/bash^M“, nos indica que tenemos los intros de DOS (Windows) posiblemente por haber sido editado con dicho sistema operativo. Para corregirlo simplemente deberemos usar la utilidad dos2unix:
$ dos2unix parser.sh dos2unix: converting file parser.sh to UNIX format ...
A continuación si lo ejecutamos ya lo hará correctamente:
$ ./parser.sh soy un parser
25. February 2011 at 9:58 am :
Gracias!!!
después de vueltas y vueltas era eso!!!
que duro es ser novatillo
Salud!!
23. November 2011 at 2:02 pm :
Sos un groso!!
Como renegé con mi script de iptables… y no le econtraba solucion.
dos2unix me salvó.. jeje
Gracias.
9. January 2014 at 10:52 pm :
He que vaina.
Gracias por esta solución.
Como llegaste a ella?
Gracias!!
20. February 2014 at 9:19 pm :
Man eres grande… me pasé casi 2 días buscando la esta solución… genial 😀
23. July 2014 at 2:36 am :
Gracias man, me servicio 🙂
7. August 2014 at 7:00 pm :
Genial, y pensar que me estaba quebrando la cabeza tan solo porque el sh lo había creado en Win…
7. August 2015 at 10:05 pm :
Muy bueno, sin tanto rollo
7. August 2015 at 10:07 pm :
solo le agregaria (para los usuarios que estamos empezando en Linux) si no se tiene la utilidad, cargarla
apt-get install dos2unix
8. May 2016 at 5:55 pm :
Muy buen post . Gracias un saludo
7. July 2016 at 7:37 am :
Grande! graicas por el post!