Nếu sleep.sh
có shebang #!/bin/sh
và nó có quyền truy cập tệp thích hợp - hãy chạy chmod u+rx sleep.sh
để đảm bảo và nó ở trong $PATH
thì mã của bạn sẽ hoạt động như sau:
import subprocess
rc = subprocess.call("sleep.sh")
Nếu tập lệnh không có trong PATH thì hãy chỉ định đường dẫn đầy đủ đến nó, ví dụ: nếu nó nằm trong thư mục làm việc hiện tại:
from subprocess import call
rc = call("./sleep.sh")
Nếu script không có shebang thì bạn cần chỉ định shell=True
:
rc = call("./sleep.sh", shell=True)
Nếu tập lệnh không có quyền thực thi và bạn không thể thay đổi nó, ví dụ: bằng cách chạy os.chmod('sleep.sh', 0o755)
thì bạn có thể đọc tập lệnh dưới dạng tệp văn bản và chuyển chuỗi vào subprocess
mô-đun thay thế:
with open('sleep.sh', 'rb') as file:
script = file.read()
rc = call(script, shell=True)