Запустите оболочку script с помощью кнопки html

Я хочу запустить bash script, когда на веб-сайте нажата кнопка. Это моя первая попытка:

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

Но не повезло. Любые предложения?

Ответ 1

Как указано Luke, вам нужно использовать серверный язык, например php. Это действительно простой пример 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>

Сохраните это как myfilename.php и поместите его на компьютер с веб-сервером с установленным php. То же самое можно сделать с помощью asp, java, ruby, python,...

Ответ 2

PHP, вероятно, самый простой.

Просто создайте файл script.php, содержащий <?php shell_exec("yourscript.sh"); ?>, и отправьте любого, кто нажимает кнопку до этого адресата. Вы можете вернуть пользователя на исходную страницу с заголовком:

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

Ссылка: http://php.net/manual/en/function.shell-exec.php

Ответ 3

Это действительно просто расширение ответа BBB, которое приводит к тому, что мой эксперимент работает.

Этот script будет просто создавать файл /tmp/testfile, когда вы нажмете на кнопку с надписью "Открыть Script".

Для этого требуется 3 файла.

  • Фактический HTML-сайт с кнопкой.
  • php script, который выполняет script
  • A script

Дерево файлов:

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

1. Основной веб-сайт:

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

2. Страница PHP, которая запускает script и перенаправляет обратно на главную страницу:

[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. script:

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

#!/bin/bash

touch /tmp/testfile