在 html 页面上显示 bash 脚本输出

Show bash script output on html page

本文关键字:bash 脚本 输出 显示 html      更新时间:2023-09-26

我有一个bash脚本来获取一些设备状态/数据包丢失,如下所示(更改了名称/IP地址):

#!/bin/bash
TSTAMP=$(date +'%Y-%m-%d %H:%M')
device1=`ping -c 1 100.1.0.2 | grep packet | awk '{ print $6 " " $7 " " $8 }'`
device2=`ping -c 1 100.1.0.3 | grep packet | awk '{ print $6 " " $7 " " $8 }'`
device3=`ping -c 1 100.1.0.4 | grep packet | awk '{ print $6 " " $7 " " $8 }'`
device4=`ping -c 1 100.1.0.5 | grep packet | awk '{ print $6 " " $7 " " $8 }'`
device5=`ping -c 1 10.1.0.250 | grep packet | awk '{ print $6 " " $7 " " $8 }'`
device6=`ping -c 1 8.8.8.8 | grep packet | awk '{ print $6 " " $7 " " $8 }'`
echo "Device 1: ${device1}"
echo "Device 2: ${device2}"
echo "Device 3: ${device3}"
echo "Device 4: ${device4}"
echo "INTERNET WITH ${device5}"
echo "Device 6 Proxy : ${device6}"
echo "Last update ${TSTAMP}"

我需要在我的 HTML 页面中显示该输出。

有些人告诉我使用 JavaScript 提取状态/数据包丢失,将它们放在一个 JSON 对象中,然后从那里扔到我的页面。但我不知道该怎么做,或者这是否是正确的方法。

您只将 cgi-bin 用于简单的网站,因此请使用简单的解决方案:
将脚本的输出显示为预格式化的测试:

echo "<pre>"
echo "Your ping results"
echo "</pre>"

当这工作时,你可能想要使用一些轻量级的html代码:

echo "<html>
<head>StackOverflow helps</head>
<body>
<br/>
My ping results are ...
<br/>
<table><tr><td>"
echo "your ping results"
echo "
</tr></td>
</table>
</body>
</html>
"

当您有不同的脚本需要类似的 html 布局时,您可以创建一个 html 文件并在结果出现的地方放置一个占位符。您需要做的就是在脚本中流式传输 html 文件,并将占位符替换为要显示的结果。

如果你对PHP感到满意:

<?php
$TSTAMP = date('Y-m-d h:i');
$device1 = shell_exec("ping -c 1 100.1.0.2 | grep packet | awk '{ print $6 '" '" $7 '" '" $8 }'");
$device2 = shell_exec("ping -c 1 100.1.0.3 | grep packet | awk '{ print $6 '" '" $7 '" '" $8 }'");
$device3 = shell_exec("ping -c 1 100.1.0.4 | grep packet | awk '{ print $6 '" '" $7 '" '" $8 }'");
$device4 = shell_exec("ping -c 1 100.1.0.5 | grep packet | awk '{ print $6 '" '" $7 '" '" $8 }'");
$device5 = shell_exec("ping -c 1 10.1.0.250 | grep packet | awk '{ print $6 '" '" $7 '" '" $8 }'");
$device6 = shell_exec("ping -c 1 8.8.8.8 | grep packet | awk '{ print $6 '" '" $7 '" '" $8 }'");
echo "Device 1: ${device1}<br />";
echo "Device 2: ${device2}<br />";
echo "Device 3: ${device3}<br />";
echo "Device 4: ${device4}<br />";
echo "INTERNET WITH: ${device5}<br />";
echo "Device 6 Proxy : : ${device6}<br />";
echo "Last Update ${TSTAMP}";
?>

现在的问题是,PHP是一种服务器端语言。这意味着当您运行网站时,您将始终从服务器的角度获得结果。客户端语言(如Javascript)则不是这种情况(因为这篇文章被标记了)。

另一个问题是确保您的 Web 服务器安装了 PHP,以便可以执行此文件。

如果您正在寻找可以在计算机上打开的文件,则不是这样,除非您在本地安装了 PHP。