Was Sie versuchen, ist auf diese Weise nicht möglich.
Beachten Sie, dass es dabei immer zwei Seiten gibt: Die Client-Seite und die Server-Seite. Befindet sich das Skript auf dem Client-Rechner oder auf dem Server?
Wenn es auf dem Client liegt: Sie als Besucher sehen nur eine HTML-Website. onClick
kann nur JavaScript (oder andere Skriptsprachen ) starten, aber kein beliebiges Shell-Skript, das sich auf Ihrem Computer befindet. HTML-Skripte werden nur im Browser ausgeführt und können nur begrenzte Dinge tun. Am wichtigsten ist, dass sie nicht mit Ihrem Computer interagieren können.
Denken Sie darüber nach: Woher soll der Browser wissen, wie er die Datei öffnen soll? Glauben Sie nicht, dass dies auch ein Sicherheitsproblem wäre - eine einfache Website, die die Ausführung von Skripten auf dem Computer eines Kunden auslöst? Was wäre, wenn es so etwas gäbe wie onClick('rm -rf /home/user')
?
Eine Alternative wäre, ein Java-Applet auszuführen, wenn man möchte, dass Code auf dem Client ausgeführt wird, aber das ist nicht genau dasselbe und es ist etwas sehr Kompliziertes. Ich denke nicht, dass es notwendig ist, dies im Detail zu erklären.
Wenn das Skript auf dem Server liegt: Wenn Sie ein Skript auf der Serverseite laufen lassen wollen und der Benutzer dessen Ausführung auslösen soll, dann müssen Sie eine serverseitige Programmiersprache verwenden. Einfaches HTML wird es nicht tun, weil es mehr oder weniger eine statische Datei ist. Wenn Sie mit dem Server interagieren wollen, könnten Sie zum Beispiel PHP verwenden.
Es hat die Funktion exec
, um ein Kommandozeilenskript auszuführen, das auf dem Webserver gespeichert ist. Im Grunde könnten Sie also exec('/path/to/name.sh');
schreiben und es würde das Skript auf dem Server ausführen.
Allerdings reicht es hier nicht aus, dies einfach in onClick
zu schreiben. Wenn Sie sich noch nicht mit PHP und serverseitiger Webprogrammierung auskennen, sollten Sie vielleicht zuerst ein paar Tutorials lesen und dann mit einer spezifischeren Frage zurückkommen.
Wenn Sie eine php-Datei mit dem entsprechenden exec(...)
-Befehl haben, stellen Sie sicher, dass das Skript Ausführungsrechte nicht nur für den Benutzer, sondern auch für die Gruppe, in der sich der Webserver befindet, gesetzt hat, also im einfachsten Fall nur 777
.
Im Problemfall überprüfen Sie den Rückgabewert des Skripts mit echo exec(...);
, um zu sehen, ob es irgendwelche Fehler gibt.
Sie können das Skript auch von der Kommandozeile und nicht vom Browser aus mit php /path/to/file.php
ausführen.