Linux en español
Ayuda

Solución error: /bin/bash^M: bad interpreter

Bad Interpreter
1 minuto de lectura

En el caso de ejecutar un script y recibir el error “bad interpreter” deberemos acceder a este para revisar el shebang.

El chebang es la línea del fichero que cuenta con una almohadilla y una admiración (#!) que indica al sistema que interprete debe utiliza para instrucciones como las que pongo a continuación.

En el caso de tener:

#!/bin/bash

Las instrucciones del script serán interpretadas por el bash.

Si aparece:

#!/usr/bin/perl

El sistema escogerá /usr/bin/perl como interprete.

Además, podemos usar el shebang para pasar opciones al intérprete, por ejemplo con:

#!/usr/bin/perl -w

En este caso habilitaremos los warnings del intérprete de perl.

Sintomas

Cuando intentamos ejecutar un script en nuestro terminal recibimos el siguiente error:

./nombrescript.sh
-bash: ./parser.sh: /bin/bash^M: bad interpreter: No such file or directory

«/bin/bash^M», nos indica que tenemos los intros de DOS (Windows) posiblemente por haber sido editado con dicho sistema operativo.

Solución

Para corregirlo simplemente deberemos usar la utilidad dos2unix de la siguiente forma:

dos2unix nombrescript.sh
dos2unix: converting file parser.sh to UNIX format ...

Si no tenemos instalada la herramienta podemos instalarla ejecutando el siguiente comando:

apt-get install dos2unix

A continuación si ejecutamos el script funcionara de forma correcta:

./nombrescript.sh
FUNCIONA

Puntuación media 5 / 5. Recuento de votos: 5

¡Síguenos en redes sociales!

Entradas relaccionadas

¿Qué es CloudLinux? ¿Para qué sirve?

Diego García Cuesta

Significado códigos de respuesta HTTP

Diego García Cuesta

Dale una nueva vida a tu portátil con estos SSD por menos de 20€

Linux en Español

Los mejores buscadores de internet para el 2019

Linux en Español

Usuario y contraseña por defecto de Xbian

Diego García Cuesta

Qué es un Puerto de red

Diego García Cuesta