Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

303
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!