I have a python script that generates a number of shell commands from the given input. The problem is that when it tries to execute the generated commands, it fails, but when i
I believe what you do is you start a single program called find
with many parameters, incl. |
and grep
and xargs
- and these are not arguments to find.
What you want to do is probably to ask bash to run find
and then pipe the outcome to grep
, etc. One way to do that is to execute a single command called bash
with two parameters (-c
) and a whole string incl. piped commands, e.g.
process = subprocess.Popen(["bash", "-c", "cat /etc/issue | grep a"], stdout=subprocess.PIPE)
output=process.communicate()[0]
print output