2011-06-04 53 views
10

Quiero iniciar un script bash cuando se presiona un botón en un sitio web. Este es mi primer intento:Ejecutar un script de shell con un botón html

<button type="button" onclick="/path/to/name.sh">Click Me!</button> 

Pero no hubo suerte. ¿Alguna sugerencia?

+3

¿Está tratando de ejecutar el script en la máquina del usuario o en el servidor? – Mat

+1

en el servidor. Estoy ejecutando Debian – dukevin

+0

@Mat ¿Qué tal el caso de ejecutar el script en la máquina del usuario? – iwantmyphd

Respuesta

16

Según lo indicado por Lucas es necesario utilizar un lenguaje del lado del servidor, como PHP. Este es un ejemplo muy simple php:

<?php 
if ($_GET['run']) { 
    # This code will run if ?run=true is set. 
    exec("/path/to/name.sh"); 
} 
?> 

<!-- This link will add ?run=true to your URL, myfilename.php?run=true --> 
<a href="?run=true">Click Me!</a> 

Guardar esto como myfilename.php y colocarlo en una máquina con un servidor web con PHP instalado. Lo mismo se puede lograr con asp, java, ruby, python, ...

+2

Esta respuesta funciona en mi escritorio Ubuntu con apache2 y php5 instalados. A continuación se incluye información adicional para ayudar a comprender mejor esta respuesta: 1. "myfilename.php" puede colocarse en el directorio raíz del servidor web (DocumentRoot) que generalmente es "/ var/www". 2. "myfilename.php" contiene el código anterior, más otro código HTML. 3. El cliente web usa " /myfilename.php" como la dirección HTTP. – jonathanzh

5

PHP es probablemente el más fácil.

Simplemente haga un archivo script.php que contenga <?php shell_exec("yourscript.sh"); ?> y envíe a cualquiera que haga clic en el botón a ese destino. Puede devolver al usuario a la página original con el encabezado:

<?php 
shell_exec("yourscript.sh"); 
header('Location: http://www.website.com/page?success=true'); 
?> 

Referencia: http://php.net/manual/en/function.shell-exec.php

3

Esto es realmente sólo una expansión de la respuesta de la acreditación que conducen a conseguir mi experimento de trabajo.

Este script simplemente creará un archivo/tmp/testfile cuando haga clic en el botón que dice "Abrir secuencia de comandos".

Esto requiere 3 archivos.

  1. El sitio web HTML real con un botón.
  2. un script PHP que ejecuta la secuencia de comandos
  3. un script

el árbol de archivos:

[email protected]:/var/www/html# tree testscript/ 
testscript/ 
├── index.html 
├── testexec.php 
└── test.sh 

1. La página web principal:

[email protected]:/var/www/html# cat testscript/index.html 
<form action="/testscript/testexec.php"> 
    <input type="submit" value="Open Script"> 
</form> 

Página 2. El PHP que se ejecuta la secuencia de comandos y redirige de nuevo a la página principal:

[email protected]:/var/www/html# cat testscript/testexec.php 
<?php 
shell_exec("/var/www/html/testscript/test.sh"); 
header('Location: http://192.168.1.222/testscript/index.html?success=true'); 
?> 

3.El script:

[email protected]:/var/www/html# cat testscript/test.sh 

#!/bin/bash 

touch /tmp/testfile 
+0

si es posible ejecutar el archivo exe from sh? mi entorno es Windows OS. quiero ejecutar el exe del navegador que busqué después de tres días, nada me ayuda – Karthi

Cuestiones relacionadas