Ejecutando el archivo bash con Error bin / bash: mal intérprete: No existe tal archivo o directorio

Soy muy nuevo en bash e intento escribir el primer script llamado hello_world en la ruta de /Users/me/Study/Linux con el contenido escrito por vim:

#! bin/bash echo Hello World 

Sin embargo, el error ocurre cuando se ejecuta:

-bash: /Users/me/Study/Linux/hello_world: bin/bash: bad interpreter: No such file or directory 

He leído muchas preguntas sobre el tema pero todavía me siento totalmente perdido. 🙁 Estaré muy agradecido por su ayuda.

Comentarios

  • pruebe #! /bin/bash para primera línea
  • @TedWrigley Thx, eso funciona; pero ¿por qué?
  • El shebang (#!) toma una ruta a un ejecutable, y en Unix / linux, las rutas deben comenzar con una barra.

Respuesta

La primera línea de su script bash debe verse así.

#!/bin/bash 

Esto se llama «línea shebang» porque los dos primeros caracteres #! son shebang . La línea shebang le dice a la computadora qué programa ejecutable debe usarse para interpretar el resto del script. En este caso, estás escribiendo un script bash, pero podrías estar escribiendo un script para python o awk, y debe indicarle al sistema qué intérprete utilizar en función del idioma en el que está escrito el script.

La razón por la que su línea shebang #! bin/bash no funciona es b porque no ha proporcionado una ruta válida (normalmente, una ruta absoluta ) al intérprete. Si omite la barra inicial /, el shell busca bin en el directorio de trabajo actual, pero no lo encuentra.

Ya que recién está comenzando a aprender bash, le sugiero que lea un libro. Esto le evitará tener que hacer demasiadas preguntas. Aprender el shell bash, tercera edición de Cameron Newham es bastante bueno.

Comentarios

  • Tenga en cuenta que el espacio después de #! no es importante: #!/bin/bash y #! /bin/bash ambos y #!bin/bash o #! bin/bash solo funcionarán si cd / primero (para que se encuentre bin ). Desde su enlace de Wikipedia " ¡Espacios en blanco después! están bien "

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *