Ce que vous essayez de faire n'est pas possible de cette façon.
Notez qu'il y a toujours deux côtés: le côté client et le côté serveur. Le script est-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 JavaScript (ou d' autres langages de script ), mais pas un script shell arbitraire résidant sur votre ordinateur. Les scripts HTML ne s'exécutent que dans le navigateur et ne peuvent faire que des choses limitées. Plus important encore, ils ne peuvent pas interagir avec votre ordinateur.
Pensez-y: comment le navigateur pourrait-il savoir 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 ça onClick('rm -rf /home/user')
?
Une alternative serait d'exécuter 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 se trouve sur le serveur: si vous souhaitez exécuter un script côté serveur et demander à l'utilisateur de déclencher son exécution, vous devez utiliser un langage de programmation côté serveur. Seul HTML ne le fera pas, car il s'agit plus ou moins d'un fichier statique. Si vous souhaitez interagir avec le serveur, vous pouvez par exemple utiliser PHP .
Il a pour exec
fonction d'exécuter un script de ligne de commande qui est stocké sur le serveur Web. Donc, fondamentalement, vous pouvez écrire exec('/path/to/name.sh');
et exécuter le script sur le serveur.
Cependant, il onClick
ne suffit pas de mettre cela en place ici. Si vous ne connaissez pas encore PHP et la programmation Web côté serveur, vous voudrez peut-être d'abord lire quelques tutoriels, puis revenir avec une question plus spécifique.
Si vous avez un fichier php avec la exec(...)
commande appropriée , assurez-vous que le script a des 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 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 à partir du navigateur avec php /path/to/file.php
.