如何从 HTML 运行 Shell 脚本?

如何从 HTML 运行 Shell 脚本?

我对 Ubuntu Linux 还不太熟悉。

我需要从html代码中运行 shell 脚本。我读到过类似使用Apache2来生成html,不知怎的,我成功地sh从 html 运行了一个文件,但我看不到执行 sh 脚本中命令的命令提示符。它可能作为守护进程运行。

那么有人能帮助我如何使它可见吗?

答案1

这是一种完全错误的方法。HTML 文件不执行任何操作,它是一种标记语言,指示浏览器如何向您显示不同的元素。您需要的是使用系统 shell 运行任意命令的 PHP、ASP、CGI 等脚本。

答案2

当您将 shell 脚本作为 CGI 运行时(我相信您正在做(或尝试做)),它将从 apache 或其他 Web 服务器守护程序运行,并且其输出在任何地方都看不到。您可以将其输出重定向到文件,例如,通过将原始脚本替换为运行脚本并保存输出的脚本:

#!/bin/bash
./original.sh | tee --append file-to-save-to

(除了您遇到的问题之外,您可能还应该更新您的问题以表明您的目标是什么。)

答案3

您可以使用 perl-cgi 来执行此操作。请查看

perl 软件包。这些模块将帮助您建立客户端连接。

示例脚本使用网络::telnet

use Net::Telnet ();
$t = new Net::Telnet (Timeout => 10,
                      Prompt => '/bash\$ $/');
$t->open("sparky");
$t->login($username, $passwd);
@lines = $t->cmd("who");
print @lines;

您可以使用 cgi 呈现该程序的输出并将其显示在浏览器中。

但这样做的局限性在于您不能使用交互式 shell 来运行命令。

相关内容