2017-07-18 2 views
0
subprocess.call(["find", ".", "-exec", "sh", "-c", "echo testFirst", ";"]) 
subprocess.call(["find", ".", "-exec", "sh", "-c", "echo testSecond", ";"], shell=True) 
subprocess.call(["find . -exec sh -c 'echo testThird' \\;"], shell=True) 

subprocess.call(["find", ".", "-exec", "sh", "-c", "touch testFirst", ";"]) 
subprocess.call(["find", ".", "-exec", "sh", "-c", "touch testSecond", ";"], shell=True) 
subprocess.call(["find . -exec sh -c 'touch testThird' \\;"], shell=True) 

Die folgenden Ausgaben:Seltsam subprocess Verhalten

testFirst 
testFirst 
testFirst 
. 
./test.py 
./data 
testThird 
testThird 
testThird 
. 
./test.py 
./testFirst 
./data 

Und nur testFirst und testThird Dateien erstellt.

Was ist die Erklärung für das Verhalten?

Ich würde davon ausgehen, Ausgabe von testFirst, testSecond, testThird sowie die drei Dateien erstellt werden.

+0

Warum brauchen Sie die ersten 4 Argumente? –

+0

Dies ist nicht mein tatsächlicher Code, ich habe ihn nur eingegrenzt, um das Problem zu demonstrieren. –

Antwort