我正在尝试将 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 中添加了标签以相同的时间间隔刷新页面,但它仍然不起作用。关于为什么不显示此脚本的任何想法?在这一点上有点不知所措。感谢您的任何回复。
最佳答案
你的 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
关于php - bash 脚本输出不显示在网页上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13377318/