หาก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")
หากสคริปต์ไม่มี shebang คุณต้องระบุ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)