Якщо sleep.shу shebang #!/bin/shє відповідні права доступу chmod u+rx sleep.shдо файлів - запустіть, щоб переконатися, що він знаходиться, $PATHтоді ваш код повинен працювати так:
import subprocess
rc = subprocess.call("sleep.sh")
Якщо сценарію немає в PATH, тоді вкажіть повний шлях до нього, наприклад, якщо він знаходиться в поточному робочому каталозі:
from subprocess import call
rc = call("./sleep.sh")
Якщо в сценарії немає шебанга, вам потрібно вказати shell=True:
rc = call("./sleep.sh", shell=True)
Якщо сценарій не має дозволу на виконання, і ви не можете його змінити, наприклад, запустивши os.chmod('sleep.sh', 0o755)його, ви можете прочитати сценарій як текстовий файл і передати рядок на subprocessмодуль:
with open('sleep.sh', 'rb') as file:
script = file.read()
rc = call(script, shell=True)