Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

294
Vistas
What happens if the interpreter specified after #! is not available?

What happens if the interpreter specified after #! is not available?

I know that after the shebang I have to specify the interpreter (best practice is /bin/bash). As a beginner I don't dare to try a lot I am afraid to damage my system.

Could you give me examples of screenshots of the two scenarios:

  • the interpreter exists
  • the interpreter is not available

I just want to understand.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

try a lot I am afraid to damage my system.

Don't worry - it's safe here. Programmers make typos all the time.

the interpreter exists

For example, a file named thefile contains the following:

#!/bin/cat
blabla

Then, when the file has executable permission bit set, then executing the file itself will execute the program /bin/cat with one argument ./thefile, as if you would type /bin/cat ./thefile in your shell. Program cat just prints the content of the file, so when exeucting ./thefile will execute /bin/cat ./thefile with will print the file content to the screen.

$ ./thefile 
#!/bin/cat
blabla

the interpreter is not available

What happens if the interpreter specified after #! is not available?

If the shebang happens to be interpreted by your shell, it would be expected that your shell will then print some kind of an information message that it can't find the interpreter, with some error description that "this file does not exist" or similar. If the file is run via one of exec*() system calls, then the kernel will return with ENOEXEC error code (per source code here)

Let's take a file named anotherfile with the following content:

#!fdsafdsafafdasfdas
blabla

For example, Bash shell will try to parse #! line by itself. Bash interactive shell would print:

$ ./anotherfile 
bash: ./anotherfile: fdsafdsafafdasfdas: bad interpreter: No such file or directory

But, for example, Busybox's Ash shell presents a different message:

$ ./anotherfile 
/bin/sh: ./anotherfile: not found

Also https://en.wikipedia.org/wiki/Shebang_(Unix) might be interesting.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda