Wenn sleep.sh
der Shebang #!/bin/sh
und die entsprechenden Dateiberechtigungen vorhanden sind, führen Sie ihn aus chmod u+rx sleep.sh
, um sicherzustellen, dass er vorhanden ist. $PATH
Dann sollte Ihr Code wie folgt funktionieren:
import subprocess
rc = subprocess.call("sleep.sh")
Wenn sich das Skript nicht im PATH befindet, geben Sie den vollständigen Pfad dazu an, z. B. wenn es sich im aktuellen Arbeitsverzeichnis befindet:
from subprocess import call
rc = call("./sleep.sh")
Wenn das Skript keinen Shebang hat, müssen Sie Folgendes angeben shell=True
:
rc = call("./sleep.sh", shell=True)
Wenn das Skript keine ausführbaren Berechtigungen hat und Sie es nicht ändern können, z. B. durch Ausführen, können os.chmod('sleep.sh', 0o755)
Sie das Skript als Textdatei lesen und subprocess
stattdessen die Zeichenfolge an das Modul übergeben:
with open('sleep.sh', 'rb') as file:
script = file.read()
rc = call(script, shell=True)