使用html按钮运行shell脚本

时间:2011-06-04 09:02:41

标签: html shell button

我想在网站上按下按钮时启动bash脚本。 这是我的第一次尝试:

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

但没有运气。有什么建议吗?

6 个答案:

答案 0 :(得分:20)

正如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的Web服务器的计算机上。使用asp,java,ruby,python,...可以完成同样的事情。

答案 1 :(得分:5)

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

答案 2 :(得分:3)

这实际上只是BBB答案的扩展,导致我的实验工作。

当您单击显示&#34;打开脚本&#34;的按钮时,此脚本将只创建一个文件/ tmp / testfile。

这需要3个文件。

  1. 带有按钮的实际HTML网站。
  2. 执行脚本的PHP脚本
  3. 脚本
  4. 文件树:

    root@test:/var/www/html# tree testscript/
    testscript/
    ├── index.html
    ├── testexec.php
    └── test.sh
    

    <强> 1。主要的WebPage:

    root@test:/var/www/html# cat testscript/index.html
    <form action="/testscript/testexec.php">
        <input type="submit" value="Open Script">
    </form>
    

    <强> 2。运行脚本并重定向回主页的PHP页面:

    root@test:/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。剧本:

    root@test:/var/www/html# cat testscript/test.sh
    
    #!/bin/bash
    
    touch /tmp/testfile
    

答案 3 :(得分:2)

这里有一个教程。这将是一个很好的起点 -

http://www.cyberciti.biz/tips/executing-linuxunix-commands-from-web-page-part-i.html

答案 4 :(得分:2)

您可以毫无问题地在bash中执行服务器端脚本。

这是另一个教程:http://www.yolinux.com/TUTORIALS/BashShellCgi.html

答案 5 :(得分:0)

这是纯bash的样子

cat /usr/lib/cgi-bin/index.cgi

#!/bin/bash
echo Content-type: text/html
echo ""
## make POST and GET stings
## as bash variables available
if [ ! -z $CONTENT_LENGTH ] && [ "$CONTENT_LENGTH" -gt 0 ] && [ $CONTENT_TYPE != "multipart/form-data" ]; then
read -n $CONTENT_LENGTH POST_STRING <&0
eval `echo "${POST_STRING//;}"|tr '&' ';'`
fi
eval `echo "${QUERY_STRING//;}"|tr '&' ';'`

echo  "<!DOCTYPE html>"
echo  "<html>"
echo  "<head>"
echo  "</head>"

if [[ "$vote" = "a" ]];then
echo "you pressed A"
  sudo /usr/local/bin/run_a.sh
elif [[ "$vote" = "b" ]];then
echo "you pressed B"
  sudo /usr/local/bin/run_b.sh
fi

echo  "<body>"
echo  "<div id=\"content-container\">"
echo  "<div id=\"content-container-center\">"
echo  "<form id=\"choice\" name='form' method=\"POST\" action=\"/\">"
echo  "<button id=\"a\" type=\"submit\" name=\"vote\" class=\"a\" value=\"a\">A</button>"
echo  "<button id=\"b\" type=\"submit\" name=\"vote\" class=\"b\" value=\"b\">B</button>"
echo  "</form>"
echo  "<div id=\"tip\">"
echo  "</div>"
echo  "</div>"
echo  "</div>"
echo  "</div>"
echo  "</body>"
echo  "</html>"

构建 https://mongoosejs.com/docs/populate.html