O que se está a tentar fazer não é possível dessa forma.
Note que há sempre dois lados para isso: O lado do cliente e o lado do servidor. O script está no computador cliente ou no servidor?
Se estiver no cliente: Você, como visitante, está apenas a ver um website HTML. onClick
só poderá lançar JavaScript (ou outras linguagens de scripting ), mas não qualquer script de shell arbitrário que resida no seu computador. Os scripts HTML só funcionam no browser e só podem fazer coisas limitadas. Mais importante ainda, não podem interagir com o seu computador.
Pense sobre isso: Como saberia o navegador como abrir o ficheiro? Não acha que isto seria também uma questão de segurança - um simples website que desencadeia a execução de scripts no computador de um cliente? E se houvesse algo como onClick('rm -rf /home/user')
?
Uma alternativa seria executar uma applet Java, se quiser que o código seja executado no cliente, mas isto não é exactamente o mesmo e é algo realmente complicado. Não creio que seja necessário explicar isto em pormenor.
Se o script estiver no servidor: Se quiser executar um script no lado do servidor e pedir ao utilizador para desencadear a sua execução, então terá de usar uma linguagem de programação do lado do servidor. Apenas HTML não o fará, porque é mais ou menos um ficheiro estático. Se quiser interagir com o servidor, pode por exemplo usar PHP .
Tem a função exec
para executar um script de linha de comando que é armazenado no servidor web. Assim, basicamente, poderia escrever exec('/path/to/name.sh');
& e executaria o script no servidor.
No entanto, apenas colocar isto em onClick
não é suficiente aqui. Se ainda não sabe sobre PHP e programação web do lado do servidor, talvez queira ler alguns tutoriais primeiro e depois voltar com uma pergunta mais específica.
Se tiver um ficheiro php com o comando exec(...)
apropriado, certifique-se de que o script tem permissões de execução definidas não só para o utilizador mas também para o grupo em que o servidor web se encontra, portanto, no caso mais simples, apenas 777
.
Em caso de problemas, verificar o valor de retorno do script com echo exec(...);
para ver se há algum erro.
Também se pode executar o script a partir da linha de comando e não a partir do browser com php /path/to/file.php
.