Was Sie versuchen, ist auf diese Weise nicht möglich.
Beachten Sie, dass dies immer zwei Seiten hat: die Clientseite und die Serverseite. Befindet sich das Skript auf dem Client-Computer oder auf dem Server?
Wenn es auf dem Client ist: Sie als Besucher sehen nur eine HTML-Website. onClick
kann nur JavaScript (oder andere Skriptsprachen ) starten , jedoch kein beliebiges Shell-Skript, das sich auf Ihrem Computer befindet. HTML-Skripte werden nur im Browser ausgeführt und können nur begrenzte Aufgaben ausführen. Vor allem können sie nicht mit Ihrem Computer interagieren.
Denken Sie darüber nach: Woher weiß der Browser, wie die Datei geöffnet wird? 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 onClick('rm -rf /home/user')
?
Eine Alternative wäre, ein Java-Applet auszuführen, wenn Code auf dem Client ausgeführt werden soll, dies ist jedoch nicht genau dasselbe und es ist etwas wirklich Kompliziertes. Ich denke nicht, dass es notwendig ist, dies im Detail zu erklären.
Wenn sich das Skript auf dem Server befindet: Wenn Sie ein Skript auf der Serverseite ausführen möchten und der Benutzer seine Ausführung auslösen soll, müssen Sie eine serverseitige Programmiersprache verwenden. Nur HTML wird es nicht tun, weil es mehr oder weniger eine statische Datei ist. Wenn Sie mit dem Server interagieren möchten, können Sie beispielsweise PHP verwenden .
Es hat die exec
Funktion, ein Befehlszeilenskript auszuführen, das auf dem Webserver gespeichert ist. Im Grunde könnte man also schreiben exec('/path/to/name.sh');
und es würde das Skript auf dem Server ausführen.
Es onClick
reicht hier jedoch nicht aus , dies nur zu tun . Wenn Sie noch nichts über PHP und serverseitige Webprogrammierung wissen, sollten Sie zuerst einige Tutorials lesen und dann eine spezifischere Frage stellen.
Wenn Sie eine PHP-Datei mit dem entsprechenden exec(...)
Befehl haben, stellen Sie sicher, dass für das Skript Ausführungsberechtigungen nicht nur für den Benutzer, sondern auch für die Gruppe festgelegt sind, in der sich der Webserver befindet, also im einfachsten Fall 777
.
Überprüfen Sie im Fehlerfall den Rückgabewert des Skripts mit, echo exec(...);
um festzustellen, ob Fehler vorliegen .
Sie können das Skript auch über die Befehlszeile und nicht über den Browser mit ausführen php /path/to/file.php
.