Якщо 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)