1

我正在尝试将 bash 脚本的输出显示到我网页上的 div 中。但是当我加载页面时,什么都没有出现。这是我到目前为止所拥有的。

jQuery ajax 函数。Discon 是信息应该出现的 div 的名称。

$(document).ready(function() {
    $.ajax({
            type: "POST",
            url:  "discon.php",
            data: "Discontinuities",
            success: function(data) {
            $('#discon').html(data)
            }
    });
 });

这是我的 php 以获取 jquery 中的内容。请注意,注释掉的部分是我在 php 中尝试不同选项的地方。我已经尝试了几次,但似乎没有任何效果。

<?php

 echo passthru('/opt/bin/enc_current_test');

//$discon = exec('/opt/bin/enc_current_test', $o, $r);
//if ($r != 0){
//      print 'Error running command';
//      exit($r);
//}
//else{
//      print implode("\n", $o);
//}

?>

我有另一个 bash 脚本在不同的 Div 中显示到同一页面,它工作正常,所以我的问题是为什么这个脚本会给我带来问题。这是 bash 脚本。

#!/bin/bash

while [ true ]
do
    counter=0

    clear
    date

    dir=/test/`date "+%Y/%m/%d"`

    cd $dir
    echo Writing On: `pwd`

            for i in `ls`
            do
                    if [ -n "$(ls -l $i/* | grep `date "+ %k:%M"`)" ];
                    then
                            echo $i
                            let "counter+=1"
                    fi
            done
    echo
    echo "Total Current Streams: "
    echo $counter
    sleep 60
    clear
done

我在想这是因为脚本休眠了 60 秒,但是我在我的 html 中添加了标签以在相同的时间间隔刷新页面,但它仍然不起作用。关于为什么这个脚本不会显示的任何想法?在这一点上有点不知所措。感谢您的任何回复。

4

2 回答 2

1

去掉echo前面的passthru()

passthru()不返回任何东西(void),它直接输出。因此,您当前的声明与此相呼应void

于 2012-11-14T10:52:25.843 回答
1

你的 bash 脚本运行无限循环

while [ true ]
do
...
done

Web 服务器一直在等待脚本的答案,并且不会将其发送给客户端(浏览器)

尝试在 bash 脚本中评论 while loop 和 sleep 命令

我也猜你不想看到 clear 命令写的额外字符,所以也评论一下

#!/bin/bash

#while [ true ]
#do
    counter=0

#    clear
    date

    dir=/test/`date "+%Y/%m/%d"`

    cd $dir
    echo Writing On: `pwd`

            for i in `ls`
            do
                    if [ -n "$(ls -l $i/* | grep `date "+ %k:%M"`)" ];
                    then
                            echo $i
                            let "counter+=1"
                    fi
            done
    echo
    echo "Total Current Streams: "
    echo $counter
#    sleep 60
#    clear
#done
于 2012-11-14T11:29:34.953 回答