Jika sleep.sh
memiliki shebang #!/bin/sh
dan memiliki izin file yang sesuai - jalankan chmod u+rx sleep.sh
untuk memastikan dan sudah masuk $PATH
maka kode Anda harus berfungsi sebagaimana mestinya:
import subprocess
rc = subprocess.call("sleep.sh")
Jika skrip tidak ada di PATH, tentukan jalur lengkapnya, misalnya, jika ada di direktori kerja saat ini:
from subprocess import call
rc = call("./sleep.sh")
Jika skrip tidak memiliki shebang maka Anda perlu menentukan shell=True
:
rc = call("./sleep.sh", shell=True)
Jika skrip tidak memiliki izin yang dapat dieksekusi dan Anda tidak dapat mengubahnya, misalnya dengan menjalankannya, os.chmod('sleep.sh', 0o755)
Anda dapat membaca skrip sebagai file teks dan meneruskan string ke subprocess
modul sebagai gantinya:
with open('sleep.sh', 'rb') as file:
script = file.read()
rc = call(script, shell=True)