ich hab da ein kleinen Problem mit python,
Ich möchte über python ein shell script in linux ausführen.
Das shell script generiert Normale Nachrichten & Fehlermeldungen.
Code: Alles auswählen
#test_script.sh
#!/bin/bash
echo "Hello this is a normal message"
echo "Hello this is an error message, error error" >&2 #stderr kanal
read "Everything good (y/n): " ans
if [ "$ans" == "y" ]; then
echo "...then everything is okey..."
else
echo "...this is boring..."
fi
Code: Alles auswählen
path = "[...]/test_script.sh"
process = subprocess.Popen([path], stderr=subprocess.PIPE, stdout = subprocess.PIPE, stdin = subprocess.PIPE)
process.wait()
print "normal text :",process.stdout.read()
print "error text :",process.stderr.read()
Normalerweise würde ich jetzt sagen :
shell script:
read -p "Everything good (y/n): " ans >&0
in python:
process.stdin.read()
aber das funktioniert nicht. Wenn ich unter python data=process.communicate(input='y\n')[0] anwende bleibt das python script hängen...
kann jemand helfen ?
danke & Gruß
zweig1971