【问题标题】:read bash output with javascript使用 javascript 读取 bash 输出
【发布时间】:2016-02-04 20:52:42
【问题描述】:

我只看到将 js 值传递给 bash 脚本的主题。我希望 bash 脚本中的值在 javascript 中使用。

我想要什么:

根据信号编号,我的网页上应显示不同的图标。需要每 5 秒检查一次信号编号,以便相应地更新图标。 (就像手机上的信号质量条)。

我有什么:

一个名为 signal.sh 的 bash 文件,其中包含要执行的以下行:

/usr/bin/pretty-wifi-info.lua | grep 'Signal' | tr '%' ' ' | awk '{printf "{\"Signal\":"$2"}"}'

该脚本的输出是(例如):

{"Signal":55}

换句话说,一个 JSON 对象。 bash 脚本位于我的服务器上 /www/signal.sh

我想知道的:

1) 我如何使用 javascript 来运行这个 bash 脚本,取出那个 json-object 并使用该数字在我的网站上的 js 中进行计算(很像使用 setInterval 重新运行一个 php 文件输出 json-obj 获取存储在变量中的信息,然后使用该新变量更新 div)。

2) 如何将不同的图标附加到特定值。

关于第一个。我真的不知道!

后者应该——我认为——是一个 if、else if、else 语句,根据结果返回一个特定的 img_src,用于在

中显示图标,每 5 次更新一次秒。

希望有人能帮忙!

更新

我认为 MichaelWclark 的答案是正确的。我使用他的信息来显示正确的图标。我决定不走 node.js 的道路,而是使用读取 bash 脚本的 php 文件。

【问题讨论】:

  • 这不是一个数组。 {} 在 JS 中是一个对象。这个js代码在哪里,它是如何执行bash的?
  • 对不起,我的意思是对象。真丢人。我在我的 OP 中重新提出了这个问题。希望更清楚我试图实现的目标。我会检查 Neilsimp1 提供的链接。
  • 从我读到的内容来看,这比最初看起来要复杂得多。如果我是正确的,node.js 是服务器端的。至少,我制作了一个测试文件,并在浏览器中打开它时返回ReferenceError: require is not defined。所以我想我需要制作一个 .js 文件才能从 .sh 文件中取出内容。然后,不知何故,我需要让 console.log 进入浏览器端来处理它并获取我的相关图标。我想知道是否没有更简单的方法可以从 .sh 文件中获取信息。还是我错过了什么?

标签: javascript bash


【解决方案1】:

只是一个想法.. 我真的不知道你想达到什么目标,但如果我在同一页面上,这可能会起作用。

使用以下命令将 cron 作业设置为每 x 分钟或秒运行一次:

/usr/bin/pretty-wifi-info.lua | grep 'Signal' | tr '%' ' ' | awk '{printf "{\"Signal\":"$2"}"}' > /home/username/webFolder/signal.json

在您的 JavaScript 中执行以下操作:

<script type="text/javascript"  src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-beta1/jquery.min.js"></script>
<script type="text/javacript">
var src = "http://www.myImage.com/somepicture.jpg";
$.getJSON("signal.json", function(json) {

    if(json.signal == 53){ 
     src = "http://www.myImage.com/signal53.jpg";
    } else if (json.signal == 54) {
     src = "localImageSignal54.jpg";
    }
    $("#img").innerHTML= "<img src='"+src+"' />";
});
</script>
<div id="img"></div>

这未经测试,但希望能帮助您入门。本质上它是在本地读取 json 文件,然后根据 json 对象的信号属性设置图像源。完成后,它会将适当的图像添加到 DOM。

【讨论】:

    猜你喜欢
    • 2023-04-08
    • 1970-01-01
    • 2020-09-29
    • 2014-06-04
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    相关资源
    最近更新 更多