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
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 sicd /
primero (para que se encuentre bin ). Desde su enlace de Wikipedia " ¡Espacios en blanco después! están bien "
#! /bin/bash
para primera línea