使用php exec和javascript执行bash脚本

时间:2012-10-16 08:05:56

标签: php javascript html bash

我正在尝试运行下面的这个javascript但是没有看到php shell_exec命令的输出。

运行测试-a bash脚本将输出一系列ID的34535,25643,23262等。当我在我的php文件中运行它时,它很简单就可以了。

print shell_exec('/opt/bin/echkchunk -a');

但是当我尝试在下面运行它并选择test1时,没有任何内容输出到屏幕上。通过chromes开发人员工具,我可以看到选择test1时的代码,如下所示

<!--?php shell_exec("/opt/bin/echkchunk -a"); ?-->

好像被注释掉了。

所以我的问题是,是否可以使用php和JavaScript以这种方式运行bash脚本?或者是否有另一种方法可以在没有JavaScript的情况下将这些信息显示在网页上?

<script type="text/javascript">
  var tester = '<?php shell_exec("/opt/bin/test -a"); ?>';      
     $(document).ready(function() {
            $("#selector").on("change", function() {
                    if ($("#selector").val() == "test1") {
                        $("#rightselection").css("background-color", "red");
                        $("#rightselection").html(tester);
                    }
                    if ($("#selector").val() == "test2") {
                        $("#rightselection").css("background-color", "blue");
                        $("#rightselection").html("test2");
                    }
                    if ($("#selector").val() == "test3"){
                        $("#rightselection").css("background-color", "yellow");
                        $("#rightselection").html("test3");
                    }
                    if ($("#selector").val() == ""){
                        $("#rightselection").css("background-color", "green");
                        $("#rightselection").html("This is a Test");
                    }
            });
    });
</script>

2 个答案:

答案 0 :(得分:1)

尝试运行将输出复制到stdout的命令:

<?php shell_exec("/opt/bin/echkchunk -a 2>&1"); ?>

如果运行命令时发生错误,则shell_exec返回null,使用2>&1即使命令失败,您也可以获得整个输出。

请参阅sh command: exec 2>&1

答案 1 :(得分:1)

如果结果是多行,则需要使用转义序列或HTML替换换行符。尝试替换

var tester = '<?php shell_exec("/opt/bin/test -a"); ?>';

var tester = '<?php echo str_replace(PHP_EOL, '<br/>', shell_exec("/opt/bin/test -a")); ?>';