Se sleep.sh
tiver o shebang #!/bin/sh
e as permissões de arquivo apropriadas - execute chmod u+rx sleep.sh
para certificar-se de que está dentro, $PATH
então seu código deve funcionar como está:
import subprocess
rc = subprocess.call("sleep.sh")
Se o script não estiver no PATH, especifique o caminho completo para ele, por exemplo, se estiver no diretório de trabalho atual:
from subprocess import call
rc = call("./sleep.sh")
Se o script não tiver nenhum shebang, você precisará especificar shell=True
:
rc = call("./sleep.sh", shell=True)
Se o script não tiver permissões executáveis e você não puder alterá-lo, por exemplo, executando os.chmod('sleep.sh', 0o755)
, você pode ler o script como um arquivo de texto e passar a string para o subprocess
módulo:
with open('sleep.sh', 'rb') as file:
script = file.read()
rc = call(script, shell=True)