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.