2

我想从 Web 浏览器中运行的 JavaScript 代码触发服务器端脚本(.sh 文件)的执行。

我搜索了谷歌,但没有找到适合我的代码。

4

4 回答 4

2

您需要首先使用运行 .sh 文件的服务器端语言(如 PHP、Python、RoR、PERL、ASP.NET 或 JSP)创建一个文件。然后您必须使用 Ajax 来请求该页面。

在 PHP 中,类似:

<?= shell_exec('sh /home/user/public_html/scripts/script.sh'); ?>

然后,对于 JS,类似:

<script src="//code.jquery.com/jquery-1.8.0.min.js"></script>
<script>
var runShellScript = function () {
    $.get('/scripts/script.php', function () {
        alert('Shell script done!');
    });
};

// Some stuff
runShellScript();
</script>

如果您不想使用 jQuery 或 Ajax,您可能会使用 JSONP。

于 2012-08-14T03:51:23.230 回答
1

确保您的 .sh 文件以:

#!/bin/sh
echo "Content-type: text/html"
echo ""

并且 .htaccess 文件被设置为执行 .sh 文件:

Options +ExecCGI
AddHandler cgi-script sh

然后,您可以简单地使用 XMLHttpRequest 从 url 调用文件。http://en.wikipedia.org/wiki/XMLHttpRequest,甚至可能让您的脚本返回一些 json 对象。

于 2012-08-19T09:18:27.487 回答
1

我相信您不能直接使用客户端 JavaScript 执行此操作。但是,您可以调用 url 请求让服务器端语言(PHP、Java、Ruby ......几乎任何语言)来完成任务。并且一定要考虑安全问题。

于 2012-08-14T03:51:52.947 回答
0

我不知道Javascript是否.sh特别打开文件,但您可以使用filereader API来打开文件。

于 2012-08-14T02:52:17.223 回答