我对 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 来运行命令。