我想在网站上按下按钮时启动 bash 脚本。这是我的第一次尝试:
<button type="button" onclick="/path/to/name.sh">Click Me!</button>
Run Code Online (Sandbox Code Playgroud)
但没有运气。有什么建议?
编辑 -遵循 slhclk 和 mit 的建议:
我在 /var/www 中有一个 php 文件,我将其指向我的网络浏览器。文件内容如下:
<?php
exec("/home/aa/scripts/test.sh");
?>
Run Code Online (Sandbox Code Playgroud)
tesh.sh 包含以下内容:
screen -S server1 -X quit
Run Code Online (Sandbox Code Playgroud)
如果我输入/home/aa/scripts/test.shshell,脚本就可以执行。但是,当我将网络浏览器指向http://example.com/screen.php(其中包含上面的代码)时,我看到一个空白页面并且脚本没有执行。两者都有执行权限。为什么不起作用?
slh*_*hck 11
你试图做的事情是不可能的。
请注意,始终有两个方面:客户端和服务器端。脚本是在客户端计算机上还是在服务器上?
如果它在客户端:您作为访问者只会看到一个 HTML 网站。onClick将只能启动 JavaScript(或其他脚本语言),而不能启动任何驻留在您计算机上的任意 shell 脚本。HTML 脚本只能在浏览器中运行,并且只能做有限的事情。最重要的是,它们无法与您的计算机进行交互。
想一想:浏览器如何知道如何打开文件?您不认为这也会是一个安全问题吗?一个普通网站触发客户端计算机上的脚本执行?如果有类似的东西onClick('rm -rf /home/user')怎么办?
如果您希望在客户端上执行代码,另一种方法是运行 Java 小程序,但这并不完全相同,而且非常复杂。我认为没有必要详细解释这一点。
如果脚本在服务器上:如果您想在服务器端运行脚本并让用户触发它的执行,那么您需要使用服务器端编程语言。只是 HTML 不会这样做,因为它或多或少是一个静态文件。如果您想与服务器交互,例如可以使用PHP。
它具有exec运行存储在 Web 服务器上的命令行脚本的功能。所以基本上,你可以编写exec('/path/to/name.sh');,它会在服务器上运行脚本。
然而,仅仅把它放进去onClick是不够的。如果您还不了解 PHP 和服务器端 Web 编程,您可能想先阅读一些教程,然后再提出更具体的问题。
如果您有一个带有适当exec(...)命令的 php 文件,请确保该脚本不仅为用户设置了执行权限,还为 Web 服务器所在的组设置了执行权限,因此在最简单的情况下,只需777.
如果出现问题,请检查脚本的返回值echo exec(...);以查看是否有任何错误。
您还可以从命令行运行脚本,而不是从浏览器运行php /path/to/file.php.
| 归档时间: |
|
| 查看次数: |
152607 次 |
| 最近记录: |