2014-02-26 53 views
1

我在bash中将脚本放入文件中。Web浏览器中的Bash输出

#!/bin/sh 
echo "Starting script" 
echo "Working.." 
while true; do 
    DATE=$(date) 
    PING=$(ping -c 1 google.pl | tail -1| awk '{print $4}' | cut -d '/' -f 2) 
    echo "$DATE Ping: $PING" >> logs/ping.txt 
    sleep 5000 
done 

但由于缺乏自由空间,我改变echo "$DATE Ping: $PING" >> logs/ping.txt只是echo "$DATE Ping: $PING"到recive在cmd中的每一行,和它的工作

但仍然是主要的想法是运行通过网络浏览器的素文字和显示其输出。 (我可以运行寿,但我不知道如何显示在浏览器中的回声输出)

+0

您已将此标签标记为PHP;到目前为止,你有什么? – Nenotlep

+0

另外,你想完成什么? – Nenotlep

+0

其他* .sh脚本,我正在使用有正常的php代码,所以我认为有一种方法可以在php中做到这一点。 – Grafitter

回答

1

您可以从PHP中使用调用bash脚本:

exec('myscript.sh'); 

,然后使用打开ping.txt:

$myFile = "ping.txt"; 
$fh = fopen($myFile, 'r'); 
$theData = fread($fh, filesize($myFile)); 
fclose($fh); 
echo $theData; 

无文本文件:

$ping = shell_exec('myscript.sh'); 
echo "<pre>$ping</pre>"; 
+0

是它的好选择,但就像我说我不能使用脚本版本与ping.txt由于缺乏空间,它必须是类似echo中的cmd,但在网络浏览器 – Grafitter

+0

@Grafitter更新了我的答案 – user986959

+0

输出将只显示脚本将停止,我需要实时预览 – Grafitter

0

如果您需要从PHP执行你的bash脚本,并显示在浏览器中输出,那么只需使用shell_exec() PHP函数从php.net

例子:

<?php 
$output = shell_exec('/path/script-name-here'); 
echo "<pre>$output</pre>"; 
?> 
+0

仅当脚本停止时才会显示输出,而且我需要实时预览 – Grafitter

+0

通常情况下,网络服务器始终会从开始到结束服务内容。它不是真的旨在保持连接的开放并不断发送您的信息。 因此,沿着什么kguest写的线;您需要使用javascript创建多个异步请求,并在每个响应返回时在浏览器中显示结果。 – 2MAS

0

有了一点AJAX的使用Net_Ping你可以有一个网页,在近实时更新。 或者使用shell_exec从你的php内部运行ping并回显从它返回的输出。