Si sleep.sha le shebang #!/bin/shet qu'il a les autorisations de fichier appropriées - exécutez chmod u+rx sleep.shpour vous assurer qu'il est dedans, $PATHalors votre code devrait fonctionner tel quel :
import subprocess
rc = subprocess.call("sleep.sh")
Si le script n'est pas dans le PATH, spécifiez le chemin complet vers lui, par exemple, s'il se trouve dans le répertoire de travail actuel:
from subprocess import call
rc = call("./sleep.sh")
Si le script n'a pas de shebang, vous devez spécifier shell=True:
rc = call("./sleep.sh", shell=True)
Si le script n'a pas d'autorisations exécutables et que vous ne pouvez pas le modifier, par exemple, en exécutant, os.chmod('sleep.sh', 0o755)vous pouvez lire le script sous forme de fichier texte et passer la chaîne au subprocessmodule à la place:
with open('sleep.sh', 'rb') as file:
script = file.read()
rc = call(script, shell=True)