Ce que vous essayez de faire n'est pas possible de cette façon.
Notez qu'il y a toujours deux côtés à cela : Le côté client et le côté serveur. Le script se trouve-t-il sur l'ordinateur client ou sur le serveur ?
Si c'est sur le client: En tant que visiteur, vous ne voyez qu'un site web HTML. onClick
ne pourra lancer que du JavaScript (ou autres langages de script ), mais pas un quelconque script shell arbitraire qui réside sur votre ordinateur. Les scripts HTML ne s'exécutent que dans le navigateur et ne peuvent faire que des choses limitées. Surtout, ils ne peuvent pas interagir avec votre ordinateur.
Pensez-y : Comment le navigateur saurait-il comment ouvrir le fichier ? Ne pensez-vous pas que ce serait aussi un problème de sécurité - un simple site web déclenchant l'exécution de scripts sur l'ordinateur d'un client ? Et s'il y avait quelque chose comme onClick('rm -rf /home/user')
?
Une alternative serait de lancer une applet Java, si vous voulez que le code soit exécuté sur le client, mais ce n'est pas exactement la même chose et c'est quelque chose de vraiment compliqué. Je ne pense pas qu'il soit nécessaire d'expliquer cela en détail.
Si le script est sur le serveur: Si vous voulez exécuter un script côté serveur et que l'utilisateur en déclenche l'exécution, alors vous devez utiliser un langage de programmation côté serveur. Le HTML ne suffit pas, car il s'agit d'un fichier plus ou moins statique. Si vous voulez interagir avec le serveur, vous pouvez par exemple utiliser PHP .
Il dispose de la fonction exec
pour exécuter un script en ligne de commande qui est stocké sur le serveur web. Donc, en gros, vous pourriez écrire exec('/path/to/name.sh');
et il exécuterait le script sur le serveur.
Cependant, il ne suffit pas ici de mettre cela dans onClick
. Si vous ne connaissez pas encore le PHP et la programmation web côté serveur, vous voudrez peut-être lire quelques tutoriels d'abord, puis revenir avec une question plus spécifique.
Si vous avez un fichier php avec la commande exec(...)
appropriée, assurez-vous que le script a les autorisations d'exécution définies non seulement pour l'utilisateur mais aussi pour le groupe dans lequel se trouve le serveur web, donc dans le cas le plus simple, juste 777
.
En cas de problème, vérifiez la valeur de retour du script avec echo exec(...);
pour voir s'il y a des erreurs.
Vous pouvez également exécuter le script à partir de la ligne de commande et non du navigateur avec php /path/to/file.php
.