import subprocess
retcode = subprocess.call(["/home/myuser/go.sh", "abc.txt", "xyz.txt"])
When I run these 2 lines, will I be doing exactly this?:
/home/myuser/go.sh abc.txt xyz.txt
Why do I get this error? But when I run go.sh normally, I don't get that error.
File "/usr/lib/python2.6/subprocess.py", line 480, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.6/subprocess.py", line 633, in __init__
errread, errwrite)
File "/usr/lib/python2.6/subprocess.py", line 1139, in _execute_child
raise child_exception
OSError: [Errno 8] Exec format error
解决方案OSError: [Errno 8] Exec format error
This is an error reported by the operating system when trying to run /home/myuser/go.sh.
It looks to me like the shebang (#!) line of go.sh is not valid.
Here's a sample script that runs from the shell but not from Popen:
#\!/bin/sh
echo "You've just called $0 $@."
Removing the \ from the first line fixes the problem.