To, co próbujesz zrobić, nie jest możliwe w ten sposób.
Pamiętaj, że zawsze istnieją dwie strony: po stronie klienta i po stronie serwera. Czy skrypt jest na komputerze klienckim lub na serwerze?
Jeśli jest na kliencie: Ty jako gość widzisz tylko witrynę HTML. onClickbędzie mógł uruchomić JavaScript (lub inne języki skryptowe ), ale nie dowolny skrypt powłoki, który znajduje się na twoim komputerze. Skrypty HTML działają tylko w przeglądarce i mogą wykonywać tylko ograniczone czynności. Co najważniejsze, nie mogą wchodzić w interakcje z komputerem.
Pomyśl o tym: skąd przeglądarka wiedziałaby, jak otworzyć plik? Czy nie uważasz, że byłby to również problem z bezpieczeństwem - zwykła strona internetowa uruchamiająca wykonywanie skryptów na komputerze klienta? Co jeśli było coś takiego onClick('rm -rf /home/user')?
Alternatywą byłoby uruchomienie apletu Java, jeśli chcesz, aby kod był wykonywany na kliencie, ale nie jest to dokładnie to samo i jest to coś naprawdę skomplikowanego. Nie sądzę, że trzeba to szczegółowo wyjaśniać.
Jeśli skrypt znajduje się na serwerze: Jeśli chcesz uruchomić skrypt po stronie serwera i pozwolić, aby użytkownik uruchomił jego wykonanie, musisz użyć języka programowania po stronie serwera. Po prostu HTML tego nie zrobi, ponieważ jest to mniej więcej plik statyczny. Jeśli chcesz wchodzić w interakcje z serwerem, możesz na przykład użyć PHP .
Ma execfunkcję uruchamiania skryptu wiersza poleceń, który jest przechowywany na serwerze WWW. Zasadniczo można pisać exec('/path/to/name.sh');i uruchamiać skrypt na serwerze.
Jednak samo włożenie tego w onClickto nie wystarczy. Jeśli nie wiesz jeszcze o PHP i programowaniu WWW po stronie serwera, możesz najpierw przeczytać kilka samouczków, a następnie wrócić z bardziej szczegółowym pytaniem.
Jeśli masz plik php z odpowiednią exec(...)komendą, upewnij się, że skrypt ma uprawnienia do wykonywania ustawione nie tylko dla użytkownika, ale także dla grupy, w której znajduje się serwer WWW, więc w najprostszym przypadku 777.
W przypadku problemów sprawdź wartość zwracaną skryptu, echo exec(...);aby sprawdzić, czy są jakieś błędy.
Możesz także uruchomić skrypt z wiersza poleceń, a nie z przeglądarki za pomocą php /path/to/file.php.