Running bash script from within python

bash, call, python

Solution

Making sleep.sh executable and adding `shell=True` to the parameter list (as suggested in previous answers) works ok. Depending on the search path, you may also need to add `./` or some other appropriate path. (Ie, change `"sleep.sh"` to `"./sleep.sh"`.)

The `shell=True` parameter is not needed (under a Posix system like Linux) if the first line of the bash script is a path to a shell; for example, `#!/bin/bash`.

Problem

I have a problem with the following code: callBash.py: ``` import subprocess print "start" subprocess.call("sleep.sh") print "end" ``` sleep.sh: ``` sleep 10 ``` I want the "end" to be printed after 10s. (I know that this is a dumb example, I could simply sleep within python, but this simple sleep.sh file was just as a test)

Original source

Related problems