command-line – No se puede ejecutar un archivo .sh: / bin / bash ^ M: intérprete incorrecto

Pregunta:

Quería ejecutar un script de shell:

-rwxr-x--x 1 root root   17234 Jun  6 18:31 create_mgw_3shelf_6xIPNI1P.sh

Intenté hacer un procedimiento estándar, pero recibí este error:

./create_mgw_3shelf_6xIPNI1P.sh 
localhost 389 -l /opt/fews/sessions/AMGWM19/log/2013-06-06-143637_CLA-0 
DEBUG   cd/etc/opt/ldapfiles/ldif_in ;
./create_mgw_3shelf_6xIPNI1P.sh 
localhost 389 -l /opt/fews/sessions/AMGWM19/log/2013-06-06-143637_CLA-0
**ERROR  sh: ./create_mgw_3shelf_6xIPNI1P.sh: /bin/bash^M: bad interpreter: No such file or directory**

Qué significa eso? Yo estaba haciendo esto como la root de usuario bajo la root grupo.

¿Significa que el archivo no tiene el permiso correcto para el usuario root ?

Respuesta:

Esto no es un problema de permisos, no recibe un mensaje sobre permisos

/bin/bash^M: bad interpreter: No such file or directory

El script indica que debe ser ejecutado por un shell ubicado en /bin/bash^M No existe tal archivo: se llama /bin/bash .

^M es un carácter de retorno de carro . Linux usa el carácter de salto de línea para marcar el final de una línea, mientras que Windows usa la secuencia de dos caracteres CR LF. Su archivo tiene terminaciones de línea de Windows, lo que confunde a Linux.

Elimina los caracteres CR falsos. Puedes hacerlo con el siguiente comando:

sed -i -e 's/\r$//' create_mgw_3shelf_6xIPNI1P.sh

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım