Snažím se spustit skript, pomocí Python pomocí podproces.Popen().
Skript má následující řádky:
#!/bin/sh
echo Hello World
Následující Python kód:
print("RUNNNING SHELL SCRIPT NOW")
shellscript = subprocess.Popen(['km/example/example1/source/test.sh'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
shellscript.wait()
for line in shellscript.stdout.readlines():
print(line)
print("SHELL SCRIPT RUN ENDED")
Nicméně, na běh, já jsem jen dostat se na následující výstup:
RUNNNING SHELL SCRIPT NOW
SHELL SCRIPT RUN ENDED
tedy nebudu se shell skript výstup mezi těmito 2 řádky.
Navíc, když jsem se odstranit stderr=subprocess.PIPE
část z subproces, jsem se následující výstup:
RUNNNING SHELL SCRIPT NOW
'km' is not defined as an internal or external command.
SHELL SCRIPT RUN ENDED
Nejsem schopen pochopit, jak vyřešit tento problém a spustit skript správně. Laskavě průvodce. Díky.
AKTUALIZACE:
Zkoušel jsem i následující změnu:
print("RUNNNING SHELL SCRIPT NOW")
shellscript = subprocess.Popen(['km/example/example1/source/test.sh'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
out, err = shellscript.communicate()
print(out)
print("SHELL SCRIPT RUN ENDED")
Mám následující výstup:
RUNNNING SHELL SCRIPT NOW
b''
SHELL SCRIPT RUN ENDED