When you call call() with list , it expects each item in this list to match a command line argument. In this case, it searches for bash run.sh as an executable file with spaces and just as one line.
Try one of the following:
call("bash run.sh".split()) call(["bash", "run.sh"])
source share