To, co próbujesz zrobić, nie jest możliwe w ten sposób.
Zauważ, że zawsze są dwie strony: Strona klienta i strona serwera. Czy skrypt znajduje się na komputerze klienckim czy na serwerze?
Jeśli jest na kliencie: Ty jako odwiedzający widzisz tylko stronę HTML. onClick
będzie w stanie uruchomić tylko JavaScript (lub inne języki skryptowe ), ale nie dowolny skrypt powłoki, który rezyduje na twoim komputerze. Skrypty HTML działają tylko w przeglądarce i mogą robić tylko ograniczone rzeczy. Co najważniejsze, nie mogą wchodzić w interakcję z Twoim komputerem.
Pomyśl o tym: Skąd przeglądarka wiedziałaby, jak otworzyć plik? Czy nie sądzisz, że to również stanowiłoby problem bezpieczeństwa - zwykła strona internetowa wywołująca wykonanie skryptów na komputerze klienta? Co by było, gdyby istniało coś w stylu onClick('rm -rf /home/user')
?
Alternatywą byłoby uruchomienie apletu Javy, jeśli chcesz, aby kod był wykonywany na kliencie, ale to nie jest dokładnie to samo i jest to coś naprawdę skomplikowanego. Nie sądzę, że jest to konieczne, aby wyjaśnić to szczegółowo.
Jeśli skrypt jest na serwerze:Jeśli chcesz uruchomić skrypt po stronie serwera, a użytkownik ma wywołać jego wykonanie, to musisz użyć języka programowania po stronie serwera. Zwykły HTML tego nie zrobi, ponieważ jest to mniej lub bardziej statyczny plik. Jeśli chcesz wejść w interakcję z serwerem, możesz na przykład użyć PHP .
Posiada on funkcję exec
do uruchamiania skryptu z wiersza poleceń, który jest przechowywany na serwerze WWW. Więc w zasadzie możesz napisać exec('/path/to/name.sh');
i to uruchomiłoby skrypt na serwerze.
Jednak samo umieszczenie tego w onClick
nie wystarczy. Jeśli nie masz jeszcze pojęcia o PHP i programowaniu stron internetowych po stronie serwera, możesz najpierw przeczytać kilka tutoriali, a następnie wrócić z bardziej szczegółowym pytaniem.
Jeśli masz plik php z odpowiednią komendą exec(...)
, upewnij się, że skrypt ma ustawione uprawnienia execute nie tylko dla użytkownika, ale także dla grupy, w której znajduje się serwer WWW, czyli w najprostszym przypadku po prostu 777
.
W razie problemów sprawdź wartość zwracaną przez skrypt za pomocą echo exec(...);
, aby zobaczyć, czy nie ma żadnych błędów.
Możesz również uruchomić skrypt z wiersza poleceń, a nie z przeglądarki za pomocą php /path/to/file.php
.