systemadmin.es > Utilidades > /bin/bash^M: bad interpreter

/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

10 comments to “/bin/bash^M: bad interpreter”

  1. Gracias!!!
    después de vueltas y vueltas era eso!!!
    que duro es ser novatillo

    Salud!!

  2. Sos un groso!!
    Como renegé con mi script de iptables… y no le econtraba solucion.
    dos2unix me salvó.. jeje
    Gracias.

  3. He que vaina.

    Gracias por esta solución.

    Como llegaste a ella?

    Gracias!!

  4. Man eres grande… me pasé casi 2 días buscando la esta solución… genial 😀

  5. Gracias man, me servicio 🙂

  6. Genial, y pensar que me estaba quebrando la cabeza tan solo porque el sh lo había creado en Win…

  7. Muy bueno, sin tanto rollo

  8. solo le agregaria (para los usuarios que estamos empezando en Linux) si no se tiene la utilidad, cargarla

    apt-get install dos2unix

  9. Muy buen post . Gracias un saludo

  10. Grande! graicas por el post!

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>