shell script: bad interpreter: No such file or directory when using pwd

I had the same problem. Removing #!/bin/bash did the trick for me. It seems that is not necessary to add where bash is located, since it is on the system path.

I found another solution here. Change

#!/bin/bash

for

#!/usr/bin/bash


The echo: bad interpreter: No such file or directory is most likely coming from the first line, #!... which is called shebang line.

About the #!... line

This line hints the shell what interpreter to use to run the file. That can be e.g. bash, or sh (which is (roughly) a subset so a lot of things won't work), or basically anything that can execute the file content - Perl, Python, Ruby, Groovy...

The line points the system in cases like calling the script directly when it's executable:

./myScript.sh

It is also often used by editors to recognize the right syntax highlighting when the file has no suffix - for instance, Gedit does that.

Solution

To override the line, feed the script to Bash as a parameter:

bash myScript.sh

Or, you can 'source' it, which means, from within a Bash shell, do either of

source myScript.sh
. myScript.sh

which will work (roughly) as if you pasted the commands yourself.

Tags:

Unix

Bash

Pwd