Eğer sleep.sh
shebang sahiptir #!/bin/sh
ve uygun dosya izinlerine sahip - çalıştırmak chmod u+rx sleep.sh
emin olmak için ve içinde bulunduğu $PATH
olarak çalışması gerekir .kodunuz o zaman:
import subprocess
rc = subprocess.call("sleep.sh")
Komut dosyası PATH içinde değilse, tam yolunu belirtin, örneğin, mevcut çalışma dizininde ise:
from subprocess import call
rc = call("./sleep.sh")
Komut dosyasında hiç shebang yoksa şunu belirtmeniz gerekir shell=True
:
rc = call("./sleep.sh", shell=True)
Komut dosyasının çalıştırılabilir izni yoksa ve örneğin çalıştırarak değiştiremiyorsanız os.chmod('sleep.sh', 0o755)
, komut dosyasını bir metin dosyası olarak okuyabilir ve subprocess
bunun yerine dizeyi modüle iletebilirsiniz :
with open('sleep.sh', 'rb') as file:
script = file.read()
rc = call(script, shell=True)