Những gì bạn đang cố gắng làm là không thể theo cách đó.
Lưu ý rằng luôn có hai mặt của nó: Phía máy khách và phía máy chủ. Là tập lệnh trên máy khách hay trên máy chủ?
Nếu đó là trên máy khách: Bạn là khách truy cập chỉ nhìn thấy một trang web HTML. onClick
sẽ chỉ có thể khởi chạy JavaScript (hoặc các ngôn ngữ kịch bản lệnh khác ) chứ không thể có bất kỳ tập lệnh shell tùy ý nào cư trú trên máy tính của bạn. Các tập lệnh HTML chỉ chạy trong trình duyệt và chỉ có thể thực hiện những điều hạn chế. Quan trọng nhất, họ không thể tương tác với máy tính của bạn.
Hãy nghĩ về nó: Làm thế nào trình duyệt sẽ biết cách mở tệp? Bạn không nghĩ rằng đây cũng sẽ là một vấn đề bảo mật - một trang web đơn giản kích hoạt việc thực thi các tập lệnh trên máy tính của khách hàng? Điều gì nếu có một cái gì đó như thế onClick('rm -rf /home/user')
nào?
Một cách khác là chạy một applet Java, nếu bạn muốn mã được thực thi trên máy khách, nhưng điều này không hoàn toàn giống nhau và nó thực sự phức tạp. Tôi không nghĩ cần phải giải thích điều này một cách chi tiết.
Nếu tập lệnh nằm trên máy chủ: Nếu bạn muốn chạy tập lệnh ở phía máy chủ và để người dùng kích hoạt thực thi tập lệnh, thì bạn cần sử dụng ngôn ngữ lập trình phía máy chủ. Chỉ HTML sẽ không làm điều đó, bởi vì nó ít nhiều là một tệp tĩnh. Nếu bạn muốn tương tác với máy chủ, ví dụ bạn có thể sử dụng PHP .
Nó có exec
chức năng chạy tập lệnh dòng lệnh được lưu trữ trên máy chủ web. Về cơ bản, bạn có thể viết exec('/path/to/name.sh');
và nó sẽ chạy tập lệnh trên máy chủ.
Tuy nhiên, chỉ đưa điều này vào onClick
là không đủ ở đây. Nếu bạn chưa biết về lập trình web phía PHP và máy chủ, bạn có thể muốn đọc một vài hướng dẫn trước và sau đó quay lại với một câu hỏi cụ thể hơn.
Nếu bạn có tệp php với exec(...)
lệnh thích hợp , hãy đảm bảo tập lệnh đã thực thi các quyền được thiết lập không chỉ cho người dùng mà còn cho nhóm máy chủ web, vì vậy trong trường hợp đơn giản nhất 777
.
Trong trường hợp gặp sự cố, hãy kiểm tra giá trị trả về của tập lệnh echo exec(...);
để xem có lỗi nào không.
Bạn cũng có thể chạy tập lệnh từ dòng lệnh chứ không phải từ trình duyệt php /path/to/file.php
.