Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm on a kali linux 64 bit.

I have created a python script which takes 2 arguments to start. I don't want to type out every time the exact same paths or search in the history of the commands I used in terminal. So I decided to create a simple script which calls the python script with its arguments.

#! /bin bash

python CreateDB.py ./WtfPath ./NoWtfPath/NewSystem/

It is the exact same command I would use in terminal. However, I get an error message when I try to execute the script file.

bash: ./wtf.sh: /bin: bad interpreter: Permission denied

wtf.sh has executable rights.

What is wrong?

share|improve this question
up vote 7 down vote accepted

You have a space instead of a forward slash here:

#! /bin bash

Should be:

#! /bin/bash

or simply

#!/bin/bash

(the first space is optional).  The shebang (#!) should be followed by the path to an executable, which may be followed by one argument, e.g.,

#!/usr/bin/env sh

In this case /usr/bin/env is the executable; see man env for details.

Just /bin refers to a directory.

share|improve this answer
    
damn, silly me! Thanks! Didn't see that... – Davlog Jul 13 '14 at 19:05
    
You might want to get into the habit of using #!/bin/sh (instead of #!/bin/bash) unless you know that you are using bash features. – G-Man Aug 11 '15 at 4:10
    
@G-Man Thanks for cleaning this up a bit. WRT bash vs. sh, I was just following the pattern from the question (although my tendency is to only use sh when I know I'm not using bash features). – goldilocks Aug 11 '15 at 8:53

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.